From 251b85a77edef7b6b38e69873612cf7ba248e862 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Fri, 30 Sep 2022 15:13:46 -0400 Subject: [PATCH 01/28] add script to convert csv parameters to python file --- .../input/parameters/lead_acid/Sulzer2019.py | 122 +++ pybamm/input/parameters/lithium_ion/Ai2020.py | 851 ++++++++++++++++++ .../input/parameters/lithium_ion/Chen2020.py | 311 +++++++ .../lithium_ion/Chen2020_composite.py | 466 ++++++++++ .../input/parameters/lithium_ion/Ecker2015.py | 521 +++++++++++ .../parameters/lithium_ion/Marquis2019.py | 429 +++++++++ .../parameters/lithium_ion/Mohtat2020.py | 433 +++++++++ .../parameters/lithium_ion/NCA_Kim2011.py | 392 ++++++++ .../input/parameters/lithium_ion/OKane2022.py | 703 +++++++++++++++ .../parameters/lithium_ion/ORegan2022.py | 819 +++++++++++++++++ .../input/parameters/lithium_ion/Prada2013.py | 273 ++++++ .../parameters/lithium_ion/Ramadass2004.py | 431 +++++++++ pybamm/input/parameters/lithium_ion/Xu2019.py | 252 ++++++ .../parameters/lithium_ion/parameters.ipynb | 106 +++ 14 files changed, 6109 insertions(+) create mode 100644 pybamm/input/parameters/lead_acid/Sulzer2019.py create mode 100644 pybamm/input/parameters/lithium_ion/Ai2020.py create mode 100644 pybamm/input/parameters/lithium_ion/Chen2020.py create mode 100644 pybamm/input/parameters/lithium_ion/Chen2020_composite.py create mode 100644 pybamm/input/parameters/lithium_ion/Ecker2015.py create mode 100644 pybamm/input/parameters/lithium_ion/Marquis2019.py create mode 100644 pybamm/input/parameters/lithium_ion/Mohtat2020.py create mode 100644 pybamm/input/parameters/lithium_ion/NCA_Kim2011.py create mode 100644 pybamm/input/parameters/lithium_ion/OKane2022.py create mode 100644 pybamm/input/parameters/lithium_ion/ORegan2022.py create mode 100644 pybamm/input/parameters/lithium_ion/Prada2013.py create mode 100644 pybamm/input/parameters/lithium_ion/Ramadass2004.py create mode 100644 pybamm/input/parameters/lithium_ion/Xu2019.py create mode 100644 pybamm/input/parameters/lithium_ion/parameters.ipynb diff --git a/pybamm/input/parameters/lead_acid/Sulzer2019.py b/pybamm/input/parameters/lead_acid/Sulzer2019.py new file mode 100644 index 0000000000..6aa42e34fe --- /dev/null +++ b/pybamm/input/parameters/lead_acid/Sulzer2019.py @@ -0,0 +1,122 @@ +def get_parameter_values(): + return { + "1 + dlnf/dlnc": 1.0, + "Ambient temperature [K]": 294.85, + "Anion stoichiometry": 1.0, + "Cation stoichiometry": 1.0, + "Cation transference number": 0.7, + "Cell cooling surface area [m2]": 0.154, + "Cell volume [m3]": 0.00027, + "Current function [A]": 1.0, + "Darken thermodynamic factor": darken_thermodynamic_factor_Chapman1968, + "Edge heat transfer coefficient [W.m-2.K-1]": 0.3, + "Electrode height [m]": 0.114, + "Electrode width [m]": 0.065, + "Electrolyte conductivity [S.m-1]": conductivity_Gu1997, + "Electrolyte diffusivity [m2.s-1]": diffusivity_Gu1997, + "Electrolyte viscosity [kg.m-1.s-1]": viscosity_Chapman1968, + "Electrons in hydrogen reaction": 2.0, + "Electrons in oxygen reaction": 4.0, + "Hydrogen diffusivity [m2.s-1]": 4.5e-09, + "Hydrogen reference OCP vs SHE [V]": 0.0, + "Initial State of Charge": 1.0, + "Initial oxygen concentration [mol.m-3]": 0.0, + "Initial temperature [K]": 294.85, + "Lower voltage cut-off [V]": 1.75, + "Maximum porosity of negative electrode": 0.53, + "Maximum porosity of positive electrode": 0.57, + "Maximum porosity of separator": 0.92, + "Maximum temperature [K]": 333.15, + "Molar mass of anions [kg.mol-1]": 0.097, + "Molar mass of cations [kg.mol-1]": 0.001, + "Molar mass of hydrogen molecules [kg.mol-1]": 0.002, + "Molar mass of oxygen molecules [kg.mol-1]": 0.032, + "Molar mass of water [kg.mol-1]": 0.01801, + "Molar volume of lead [m3.mol-1]": 1.82539682539683e-05, + "Molar volume of lead sulfate [m3.mol-1]": 4.81717011128776e-05, + "Molar volume of lead-dioxide [m3.mol-1]": 2.54797441364606e-05, + "Negative current collector density [kg.m-3]": 11300.0, + "Negative current collector specific heat capacity [J.kg-1.K-1]": 130.0, + "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, + "Negative current collector thermal conductivity [W.m-1.K-1]": 35.0, + "Negative current collector thickness [m]": 0.0, + "Negative electrode Bruggeman coefficient (electrode)": 1.5, + "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, + "Negative electrode capacity [C.m-3]": 3473000000.0, + "Negative electrode cation signed stoichiometry": 1.0, + "Negative electrode conductivity [S.m-1]": 4800000.0, + "Negative electrode density [kg.m-3]": 11300.0, + "Negative electrode double-layer capacity [F.m-2]": 0.2, + "Negative electrode electrons in reaction": 2.0, + "Negative electrode exchange-current density [A.m-2]": lead_exchange_current_density_Sulzer2019, + "Negative electrode morphological parameter": 0.6, + "Negative electrode open-circuit potential [V]": lead_ocp_Bode1977, + "Negative electrode pore size [m]": 1e-07, + "Negative electrode reference exchange-current density (hydrogen) [A.m-2]": 1.56e-11, + "Negative electrode reference exchange-current density (oxygen) [A.m-2]": 2.5e-32, + "Negative electrode specific heat capacity [J.kg-1.K-1]": 130.0, + "Negative electrode surface area to volume ratio [m-1]": 2300000.0, + "Negative electrode thermal conductivity [W.m-1.K-1]": 35.0, + "Negative electrode thickness [m]": 0.0009, + "Negative electrode volumetric capacity [C.m-3]": 3473000000.0, + "Negative tab centre y-coordinate [m]": 0.06, + "Negative tab centre z-coordinate [m]": 0.114, + "Negative tab heat transfer coefficient [W.m-2.K-1]": 10.0, + "Negative tab width [m]": 0.04, + "Nominal cell capacity [A.h]": 17.0, + "Number of cells connected in series to make a battery": 6.0, + "Number of electrodes connected in parallel to make a cell": 8.0, + "Oxygen diffusivity [m2.s-1]": 2.1e-09, + "Oxygen reference OCP vs SHE [V]": 1.229, + "Partial molar volume of anions [m3.mol-1]": 3.15e-05, + "Partial molar volume of cations [m3.mol-1]": 1.35e-05, + "Partial molar volume of hydrogen molecules [m3.mol-1]": 2.31e-05, + "Partial molar volume of oxygen molecules [m3.mol-1]": 3.21e-05, + "Partial molar volume of water [m3.mol-1]": 1.75e-05, + "Positive current collector density [kg.m-3]": 9375.0, + "Positive current collector specific heat capacity [J.kg-1.K-1]": 256.0, + "Positive current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, + "Positive current collector thermal conductivity [W.m-1.K-1]": 35.0, + "Positive current collector thickness [m]": 0.0, + "Positive electrode Bruggeman coefficient (electrode)": 1.5, + "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, + "Positive electrode capacity [C.m-3]": 2745000000.0, + "Positive electrode cation signed stoichiometry": 3.0, + "Positive electrode conductivity [S.m-1]": 80000.0, + "Positive electrode density [kg.m-3]": 9375.0, + "Positive electrode double-layer capacity [F.m-2]": 0.2, + "Positive electrode electrons in reaction": 2.0, + "Positive electrode exchange-current density [A.m-2]": lead_dioxide_exchange_current_density_Sulzer2019, + "Positive electrode morphological parameter": 0.6, + "Positive electrode open-circuit potential [V]": lead_dioxide_ocp_Bode1977, + "Positive electrode oxygen exchange-current density [A.m-2]": oxygen_exchange_current_density_Sulzer2019, + "Positive electrode pore size [m]": 1e-07, + "Positive electrode reference exchange-current density (hydrogen) [A.m-2]": 0.0, + "Positive electrode specific heat capacity [J.kg-1.K-1]": 256.0, + "Positive electrode surface area to volume ratio [m-1]": 23000000.0, + "Positive electrode thermal conductivity [W.m-1.K-1]": 35.0, + "Positive electrode thickness [m]": 0.00125, + "Positive electrode volumetric capacity [C.m-3]": 2745000000.0, + "Positive tab centre y-coordinate [m]": 0.147, + "Positive tab centre z-coordinate [m]": 0.114, + "Positive tab heat transfer coefficient [W.m-2.K-1]": 10.0, + "Positive tab width [m]": 0.04, + "Reference oxygen molecule concentration [mol.m-3]": 1000.0, + "Reference temperature [K]": 294.85, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator density [kg.m-3]": 1680.0, + "Separator specific heat capacity [J.kg-1.K-1]": 700.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.04, + "Separator thickness [m]": 0.0015, + "Signed stoichiometry of cations (hydrogen reaction)": 2.0, + "Signed stoichiometry of cations (oxygen reaction)": 4.0, + "Signed stoichiometry of hydrogen (hydrogen reaction)": -1.0, + "Signed stoichiometry of oxygen (oxygen reaction)": 1.0, + "Signed stoichiometry of water (oxygen reaction)": -1.0, + "Total heat transfer coefficient [W.m-2.K-1]": 10.0, + "Typical current [A]": 1.0, + "Typical electrolyte concentration [mol.m-3]": 5650.0, + "Typical oxygen concentration [mol.m-3]": 1000.0, + "Upper voltage cut-off [V]": 2.42, + "Volume change factor": 1.0, + } diff --git a/pybamm/input/parameters/lithium_ion/Ai2020.py b/pybamm/input/parameters/lithium_ion/Ai2020.py new file mode 100644 index 0000000000..8710ac6059 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/Ai2020.py @@ -0,0 +1,851 @@ +def graphite_diffusivity_Dualfoil1998(sto, T): + """ + Graphite diffusivity as a function of stochiometry [1, 2, 3]. + + References + ---------- + .. [1] Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). + Electrochemical Thermal-Mechanical Modelling of Stress Inhomogeneity in + Lithium-Ion Pouch Cells. Journal of The Electrochemical Society, 167(1), 013512 + DOI: 10.1149/2.0122001JES. + .. [2] Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). + A new method to model the thickness change of a commercial pouch cell + during discharge. Journal of The Electrochemical Society, 163(8), A1566-A1575. + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + T: :class:`pybamm.Symbol` + Dimensional temperature, [K] + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity [m2.s-1] + """ + D_ref = 3.9 * 10 ** (-14) + E_D_s = 5000 + T_ref = Parameter("Reference temperature [K]") + arrhenius = exp(E_D_s / constants.R * (1 / T_ref - 1 / T)) + return D_ref * arrhenius + +def graphite_electrolyte_exchange_current_density_Dualfoil1998( + c_e, c_s_surf, c_s_max, T +): + """ + Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in + EC:DMC. + + References + ---------- + .. [2] http://www.cchem.berkeley.edu/jsngrp/fortran.html + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + m_ref = ( + 1 * 10 ** (-11) * constants.F + ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations + E_r = 5000 # activation energy for Temperature Dependent Reaction Constant [J/mol] + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + return ( + m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + ) + +def graphite_entropy_Enertech_Ai2020_function(sto, c_s_max): + """ + Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at + a temperature of 298.15K as a function of the stochiometry. The fit is taken + from Ref [1], which is only accurate + for 0.43 < sto < 0.9936. + + References + ---------- + .. [1] Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). + Electrochemical Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. # noqa + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES # noqa + + Parameters + ---------- + sto: double + Stochiometry of material (li-fraction) + + Returns + ------- + :class:`pybamm.Symbol` + Entropic change [V.K-1] + """ + + du_dT = ( + 0.001 + * ( + 0.005269056 + + 3.299265709 * sto + - 91.79325798 * sto**2 + + 1004.911008 * sto**3 + - 5812.278127 * sto**4 + + 19329.7549 * sto**5 + - 37147.8947 * sto**6 + + 38379.18127 * sto**7 + - 16515.05308 * sto**8 + ) + / ( + 1 + - 48.09287227 * sto + + 1017.234804 * sto**2 + - 10481.80419 * sto**3 + + 59431.3 * sto**4 + - 195881.6488 * sto**5 + + 374577.3152 * sto**6 + - 385821.1607 * sto**7 + + 165705.8597 * sto**8 + ) + ) + + return du_dT + +def graphite_volume_change_Ai2020(sto, c_s_max): + """ + Graphite particle volume change as a function of stochiometry [1, 2]. + + References + ---------- + .. [1] Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). + Electrochemical Thermal-Mechanical Modelling of Stress Inhomogeneity in + Lithium-Ion Pouch Cells. Journal of The Electrochemical Society, 167(1), 013512 + DOI: 10.1149/2.0122001JES. + .. [2] Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). + A new method to model the thickness change of a commercial pouch cell + during discharge. Journal of The Electrochemical Society, 163(8), A1566-A1575. + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry, dimensionless + should be R-averaged particle concentration + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + + Returns + ------- + t_change:class:`pybamm.Symbol` + volume change, dimensionless, normalised by particle volume + """ + p1 = 145.907 + p2 = -681.229 + p3 = 1334.442 + p4 = -1415.710 + p5 = 873.906 + p6 = -312.528 + p7 = 60.641 + p8 = -5.706 + p9 = 0.386 + p10 = -4.966e-05 + t_change = ( + p1 * sto**9 + + p2 * sto**8 + + p3 * sto**7 + + p4 * sto**6 + + p5 * sto**5 + + p6 * sto**4 + + p7 * sto**3 + + p8 * sto**2 + + p9 * sto + + p10 + ) + return t_change + +def graphite_cracking_rate_Ai2020(T_dim): + """ + graphite particle cracking rate as a function of temperature [1, 2]. + + References + ---------- + .. [1] Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). + Electrochemical Thermal-Mechanical Modelling of Stress Inhomogeneity in + Lithium-Ion Pouch Cells. Journal of The Electrochemical Society, 167(1), 013512 + DOI: 10.1149/2.0122001JES. + .. [2] Deshpande, R., Verbrugge, M., Cheng, Y. T., Wang, J., & Liu, P. (2012). + Battery cycle life prediction with coupled chemical degradation and fatigue + mechanics. Journal of the Electrochemical Society, 159(10), A1730. + + Parameters + ---------- + T_dim: :class:`pybamm.Symbol` + temperature, [K] + + Returns + ------- + k_cr: :class:`pybamm.Symbol` + cracking rate, [m/(Pa.m0.5)^m_cr] + where m_cr is another Paris' law constant + """ + k_cr = 3.9e-20 + T_ref = Parameter("Reference temperature [K]") + Eac_cr = Parameter( + "Negative electrode activation energy for cracking rate [J.mol-1]" + ) + arrhenius = exp(Eac_cr / constants.R * (1 / T_dim - 1 / T_ref)) + return k_cr * arrhenius + +def lico2_diffusivity_Dualfoil1998(sto, T): + """ + LiCo2 diffusivity as a function of stochiometry, in this case the + diffusivity is taken to be a constant. The value is taken from Dualfoil [1]. + + References + ---------- + .. [1] http://www.cchem.berkeley.edu/jsngrp/fortran.html + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + T: :class:`pybamm.Symbol` + Dimensional temperature, [K] + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity [m2.s-1] + """ + D_ref = 5.387 * 10 ** (-15) + E_D_s = 5000 + T_ref = Parameter("Reference temperature [K]") + arrhenius = exp(E_D_s / constants.R * (1 / T_ref - 1 / T)) + return D_ref * arrhenius + +def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_max, T): + """ + Exchange-current density for Butler-Volmer reactions between lico2 and LiPF6 in + EC:DMC. + + References + ---------- + .. [2] http://www.cchem.berkeley.edu/jsngrp/fortran.html + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + m_ref = 1 * 10 ** (-11) * constants.F # need to match the unit from m/s + # (A/m2)(mol/m3)**1.5 - includes ref concentrations + E_r = 5000 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + return ( + m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + ) + +def lico2_entropic_change_Ai2020_function(sto, c_s_max): + """ + Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at + a temperature of 298.15K as a function of the stochiometry. The fit is taken + from Ref [1], which is only accurate + for 0.43 < sto < 0.9936. + + References + ---------- + .. [1] Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). + Electrochemical Thermal-Mechanical Modelling of Stress Inhomogeneity + in Lithium-Ion Pouch Cells. Journal of The Electrochemical Society, + 167(1), 013512. DOI: 10.1149/2.0122001JES + + Parameters + ---------- + sto: double + Stochiometry of material (li-fraction) + + Returns + ------- + :class:`pybamm.Symbol` + Entropic change [V.K-1] + """ + + # Since the equation for LiCo2 from this ref. has the stretch factor, + # should this too? If not, the "bumps" in the OCV don't line up. + p1 = -3.20392657 + p2 = 14.5719049 + p3 = -27.9047599 + p4 = 29.1744564 + p5 = -17.992018 + p6 = 6.54799331 + p7 = -1.30382445 + p8 = 0.109667298 + + du_dT = ( + p1 * sto**7 + + p2 * sto**6 + + p3 * sto**5 + + p4 * sto**4 + + p5 * sto**3 + + p6 * sto**2 + + p7 * sto + + p8 + ) + + return du_dT + +def lico2_volume_change_Ai2020(sto, c_s_max): + """ + lico2 particle volume change as a function of stochiometry [1, 2]. + + References + ---------- + .. [1] Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). + Electrochemical Thermal-Mechanical Modelling of Stress Inhomogeneity in + Lithium-Ion Pouch Cells. Journal of The Electrochemical Society, 167(1), 013512 + DOI: 10.1149/2.0122001JES. + .. [2] Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). + A new method to model the thickness change of a commercial pouch cell + during discharge. Journal of The Electrochemical Society, 163(8), A1566-A1575. + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry, dimensionless + should be R-averaged particle concentration + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + + Returns + ------- + t_change:class:`pybamm.Symbol` + volume change, dimensionless, normalised by particle volume + """ + omega = Parameter("Positive electrode partial molar volume [m3.mol-1]") + t_change = omega * c_s_max * sto + return t_change + +def lico2_cracking_rate_Ai2020(T_dim): + """ + lico2 particle cracking rate as a function of temperature [1, 2]. + + References + ---------- + .. [1] Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). + Electrochemical Thermal-Mechanical Modelling of Stress Inhomogeneity in + Lithium-Ion Pouch Cells. Journal of The Electrochemical Society, 167(1), 013512 + DOI: 10.1149/2.0122001JES. + .. [2] Deshpande, R., Verbrugge, M., Cheng, Y. T., Wang, J., & Liu, P. (2012). + Battery cycle life prediction with coupled chemical degradation and fatigue + mechanics. Journal of the Electrochemical Society, 159(10), A1730. + + Parameters + ---------- + T: :class:`pybamm.Symbol` + temperature, [K] + + Returns + ------- + k_cr: :class:`pybamm.Symbol` + cracking rate, [m/(Pa.m0.5)^m_cr] + where m_cr is another Paris' law constant + """ + k_cr = 3.9e-20 + T_ref = Parameter("Reference temperature [K]") + Eac_cr = Parameter( + "Positive electrode activation energy for cracking rate [J.mol-1]" + ) + arrhenius = exp(Eac_cr / constants.R * (1 / T_dim - 1 / T_ref)) + return k_cr * arrhenius + +def dlnf_dlnc_Ai2020(c_e, T, T_ref=298.3, t_plus=0.38): + """ + Activity dependence of LiPF6 in EC:DMC as a function of ion concentration. + + References + ---------- + .. [1] Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). + Electrochemical Thermal-Mechanical Modelling of Stress Inhomogeneity + in Lithium-Ion Pouch Cells. Journal of The Electrochemical Society, + 167(1), 013512. DOI: 10.1149/2.0122001JES. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration, mol/m^3 + T: :class:`pybamm.Symbol` + Dimensional temperature, K + + Returns + ------- + :class:`pybamm.Symbol` + 1 + dlnf/dlnc + """ + T_ref = Parameter("Reference temperature [K]") + t_plus = Parameter("Cation transference number") + dlnf_dlnc = ( + 0.601 + - 0.24 * (c_e / 1000) ** 0.5 + + 0.982 * (1 - 0.0052 * (T - T_ref)) * (c_e / 1000) ** 1.5 + ) / (1 - t_plus) + return dlnf_dlnc + +def electrolyte_diffusivity_Ai2020(c_e, T): + """ + Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. + + References + ---------- + .. [1] Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). + Electrochemical Thermal-Mechanical Modelling of Stress Inhomogeneity + in Lithium-Ion Pouch Cells. Journal of The Electrochemical Society, + 167(1), 013512. DOI: 10.1149/2.0122001JES. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration, mol/m^3 + T: :class:`pybamm.Symbol` + Dimensional temperature, K + + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + D_c_e = 10 ** (-8.43 - 54 / (T - 229 - 5e-3 * c_e) - 0.22e-3 * c_e) + + return D_c_e + +def electrolyte_conductivity_Ai2020(c_e, T): + """ + Conductivity of LiPF6 in EC:DMC as a function of ion concentration. + Concentration should be in dm3 in the function. + + References + ---------- + .. [1] Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). + Electrochemical Thermal-Mechanical Modelling of Stress Inhomogeneity + in Lithium-Ion Pouch Cells. Journal of The Electrochemical Society, + 167(1), 013512. DOI: 10.1149/2.0122001JES. + .. [2] Torchio, Marcello, et al. "Lionsimba: a matlab framework based + on a finite volume model suitable for li-ion battery design, simulation, + and control." Journal of The Electrochemical Society 163.7 (2016): A1192. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + sigma_e = ( + 1e-4 + * c_e + * ( + (-10.5 + 0.668 * 1e-3 * c_e + 0.494 * 1e-6 * c_e**2) + + (0.074 - 1.78 * 1e-5 * c_e - 8.86 * 1e-10 * c_e**2) * T + + (-6.96 * 1e-5 + 2.8 * 1e-8 * c_e) * T**2 + ) + ** 2 + ) + + return sigma_e + +def get_parameter_values(): + return {'1 + dlnf/dlnc': dlnf_dlnc_Ai2020, + 'Ambient temperature [K]': 298.15, + 'Bulk solvent concentration [mol.m-3]': 2636.0, + 'Cation transference number': 0.38, + 'Cell cooling surface area [m2]': 0.0060484, + 'Cell emissivity': 0.95, + 'Cell thermal expansion coefficient [m.K-1]': 1.1e-06, + 'Cell volume [m3]': 1.5341e-05, + 'Current function [A]': 2.28, + 'EC diffusivity [m2.s-1]': 2e-18, + 'EC initial concentration in electrolyte [mol.m-3]': 4541.0, + 'Electrode height [m]': 0.051, + 'Electrode width [m]': 0.047, + 'Electrolyte conductivity [S.m-1]': electrolyte_conductivity_Ai2020, + 'Electrolyte diffusivity [m2.s-1]': electrolyte_diffusivity_Ai2020, + 'Initial concentration in electrolyte [mol.m-3]': 1000.0, + 'Initial concentration in negative electrode [mol.m-3]': 24108.0, + 'Initial concentration in positive electrode [mol.m-3]': 21725.0, + 'Initial inner SEI thickness [m]': 2.5e-09, + 'Initial outer SEI thickness [m]': 2.5e-09, + 'Initial temperature [K]': 298.15, + 'Inner SEI electron conductivity [S.m-1]': 8.95e-14, + 'Inner SEI lithium interstitial diffusivity [m2.s-1]': 1e-20, + 'Inner SEI open-circuit potential [V]': 0.1, + 'Inner SEI partial molar volume [m3.mol-1]': 9.585e-05, + 'Inner SEI reaction proportion': 0.5, + 'Lithium interstitial reference concentration [mol.m-3]': 15.0, + 'Lower voltage cut-off [V]': 3.0, + 'Maximum concentration in negative electrode [mol.m-3]': 28700.0, + 'Maximum concentration in positive electrode [mol.m-3]': 49943.0, + 'Negative current collector conductivity [S.m-1]': 58411000.0, + 'Negative current collector density [kg.m-3]': 8960.0, + 'Negative current collector specific heat capacity [J.kg-1.K-1]': 385.0, + 'Negative current collector thermal conductivity [W.m-1.K-1]': 401.0, + 'Negative current collector thickness [m]': 1e-05, + 'Negative electrode Bruggeman coefficient (electrode)': 0.0, + 'Negative electrode Bruggeman coefficient (electrolyte)': 2.914, + 'Negative electrode LAM constant exponential term': 2.0, + 'Negative electrode LAM constant proportional term [s-1]': 0.0, + 'Negative electrode OCP [V]': ('graphite_ocp_Enertech_Ai2020, + ([array([0.00000000e+00, 5.00000000e-04, 1.27041000e-03, 1.52479000e-03, + 1.90595000e-03, 2.22355800e-03, 4.06054700e-03, 4.82015100e-03, + 6.46394300e-03, 7.41337000e-03, 8.61650600e-03, 9.12341700e-03, + 1.07682260e-02, 1.26650460e-02, 1.41183440e-02, 1.77867520e-02, + 2.06946900e-02, 2.39837990e-02, 3.05021750e-02, 3.60011350e-02, + 3.96066620e-02, 5.91480830e-02, 6.12979420e-02, 7.13498330e-02, + 8.02655260e-02, 1.19208079e-01, 1.28120548e-01, 1.34253707e-01, + 1.41584594e-01, 1.50874177e-01, 1.60609131e-01, 1.70345957e-01, + 1.89747769e-01, 2.09222253e-01, 2.19017730e-01, 2.28756579e-01, + 2.38552575e-01, 2.48349231e-01, 2.58084023e-01, 2.67821184e-01, + 2.87415350e-01, 2.97209811e-01, 3.07004942e-01, 3.16798396e-01, + 3.26534032e-01, 3.36321558e-01, 3.46061758e-01, 3.55856392e-01, + 3.65593044e-01, 3.75388012e-01, 3.85120781e-01, 3.94915577e-01, + 4.04717479e-01, 4.14512102e-01, 4.24244871e-01, 4.34039331e-01, + 4.43770240e-01, 4.53564862e-01, 4.63298139e-01, 4.73034456e-01, + 4.82766544e-01, 4.92564552e-01, 5.02302892e-01, 5.12042595e-01, + 5.21833161e-01, 5.31572182e-01, 5.41369033e-01, 5.51104831e-01, + 5.60899800e-01, 5.70635608e-01, 5.80434806e-01, 5.90235692e-01, + 5.99977407e-01, 6.09716266e-01, 6.19517822e-01, 6.29313635e-01, + 6.39049108e-01, 6.48790152e-01, 6.58584104e-01, 6.68320248e-01, + 6.78055040e-01, 6.87851869e-01, 6.97649380e-01, 7.07389072e-01, + 7.17188097e-01, 7.26977148e-01, 7.36776336e-01, 7.46515866e-01, + 7.56259106e-01, 7.66055091e-01, 7.75789039e-01, 7.85537861e-01, + 7.95329790e-01, 8.05080646e-01, 8.14827099e-01, 8.24570003e-01, + 8.34370889e-01, 8.44173289e-01, 8.53913187e-01, 8.63650510e-01, + 8.73392073e-01, 8.83126865e-01, 8.92918286e-01, 9.02708516e-01, + 9.12443308e-01, 9.22232533e-01, 9.32019724e-01, 9.41812832e-01, + 9.51602392e-01, 9.61392795e-01, 9.70177652e-01, 9.76051358e-01, + 9.80413449e-01, 9.83887804e-01, 9.86792703e-01, 9.89255096e-01, + 9.91401407e-01, 9.93359929e-01, 9.95130154e-01, 9.96776304e-01, + 9.98229440e-01, 9.99241066e-01, 9.99746961e-01, 9.99936448e-01, + 1.00000000e+00])], + array([3.5 , 3. , 1.04 , 1.01 , 0.97265384, + 0.94249055, 0.81624059, 0.78028093, 0.71896262, 0.69137476, + 0.66139178, 0.64996223, 0.6165173 , 0.58331086, 0.56083078, + 0.51243948, 0.48025136, 0.44849587, 0.39598881, 0.35950768, + 0.33847798, 0.25631956, 0.25117361, 0.23605532, 0.23100922, + 0.2232966 , 0.21828424, 0.21327386, 0.20822836, 0.20320974, + 0.19862098, 0.19381638, 0.18416691, 0.17679053, 0.17383044, + 0.17096326, 0.1679035 , 0.16464998, 0.16149133, 0.15859383, + 0.15339916, 0.15100232, 0.14886213, 0.14691891, 0.14532814, + 0.14400211, 0.14290212, 0.14201426, 0.14131601, 0.1407591 , + 0.14031432, 0.13994232, 0.13961785, 0.13932541, 0.13905101, + 0.1387793 , 0.13851741, 0.1382589 , 0.13798129, 0.13767223, + 0.13732933, 0.13690322, 0.13639024, 0.13575758, 0.1349471 , + 0.13392324, 0.13262168, 0.13098947, 0.12896492, 0.12654999, + 0.12374288, 0.12077083, 0.11792963, 0.11537998, 0.11320542, + 0.11136648, 0.10985549, 0.10857895, 0.10752068, 0.10663254, + 0.10589376, 0.10526061, 0.10471319, 0.10425437, 0.10384562, + 0.10347712, 0.10315393, 0.10285654, 0.10258744, 0.10233828, + 0.10210199, 0.1018809 , 0.10167642, 0.10146588, 0.10126417, + 0.10106263, 0.10087041, 0.10068096, 0.10048922, 0.10030044, + 0.10009972, 0.0998771 , 0.09962899, 0.09933262, 0.09895842, + 0.09844254, 0.09768364, 0.096492 , 0.09451079, 0.09113682, + 0.08611519, 0.08107875, 0.07604037, 0.07099153, 0.06589833, + 0.06084405, 0.05581012, 0.0506707 , 0.0455624 , 0.04039266, + 0.03526127, 0.03024266, 0.02485077, 0.0192515 , 0.00499468]))), + 'Negative electrode OCP entropic change [V.K-1]': graphite_entropy_Enertech_Ai2020_function, + "Negative electrode Paris' law constant b": 1.12, + "Negative electrode Paris' law constant m": 2.2, + "Negative electrode Poisson's ratio": 0.3, + "Negative electrode Young's modulus [Pa]": 15000000000.0, + 'Negative electrode activation energy for cracking rate [J.mol-1]': 0.0, + 'Negative electrode active material volume fraction': 0.61, + 'Negative electrode cation signed stoichiometry': -1.0, + 'Negative electrode charge transfer coefficient': 0.5, + 'Negative electrode conductivity [S.m-1]': 100.0, + 'Negative electrode cracking rate': graphite_cracking_rate_Ai2020, + 'Negative electrode critical stress [Pa]': 60000000.0, + 'Negative electrode density [kg.m-3]': 2470.0, + 'Negative electrode diffusivity [m2.s-1]': graphite_diffusivity_Dualfoil1998, + 'Negative electrode double-layer capacity [F.m-2]': 0.2, + 'Negative electrode electrons in reaction': 1.0, + 'Negative electrode exchange-current density [A.m-2]': graphite_electrolyte_exchange_current_density_Dualfoil1998, + 'Negative electrode initial crack length [m]': 2e-08, + 'Negative electrode initial crack width [m]': 1.5e-08, + 'Negative electrode number of cracks per unit area [m-2]': 3180000000000000.0, + 'Negative electrode partial molar volume [m3.mol-1]': 3.1e-06, + 'Negative electrode porosity': 0.33, + 'Negative electrode reaction-driven LAM factor [m3.mol-1]': 0.0, + 'Negative electrode reference concentration for free of deformation [mol.m-3]': 0.0, + 'Negative electrode specific heat capacity [J.kg-1.K-1]': 1080.2, + 'Negative electrode thermal conductivity [W.m-1.K-1]': 1.04, + 'Negative electrode thickness [m]': 7.65e-05, + 'Negative electrode volume change': graphite_volume_change_Ai2020, + 'Negative particle radius [m]': 5e-06, + 'Nominal cell capacity [A.h]': 2.28, + 'Number of cells connected in series to make a battery': 1.0, + 'Number of electrodes connected in parallel to make a cell': 34.0, + 'Outer SEI open-circuit potential [V]': 0.8, + 'Outer SEI partial molar volume [m3.mol-1]': 9.585e-05, + 'Outer SEI solvent diffusivity [m2.s-1]': 2.5000000000000002e-22, + 'Positive current collector conductivity [S.m-1]': 36914000.0, + 'Positive current collector density [kg.m-3]': 2700.0, + 'Positive current collector specific heat capacity [J.kg-1.K-1]': 897.0, + 'Positive current collector thermal conductivity [W.m-1.K-1]': 237.0, + 'Positive current collector thickness [m]': 1.5e-05, + 'Positive electrode Bruggeman coefficient (electrode)': 0.0, + 'Positive electrode Bruggeman coefficient (electrolyte)': 1.83, + 'Positive electrode LAM constant exponential term': 2.0, + 'Positive electrode LAM constant proportional term [s-1]': 2.78e-13, + 'Positive electrode OCP [V]': ('lico2_ocp_Ai2020, + ([array([0.43 , 0.43663978, 0.43790614, 0.4391725 , 0.44043886, + 0.44170522, 0.44297158, 0.44423794, 0.4455043 , 0.44677066, + 0.44803701, 0.44930337, 0.45056973, 0.45183609, 0.45310245, + 0.45436881, 0.45563517, 0.45690153, 0.45816788, 0.45943424, + 0.4607006 , 0.46196696, 0.46323332, 0.46449968, 0.46576604, + 0.4670324 , 0.46829876, 0.46956511, 0.47083147, 0.47209783, + 0.47336419, 0.47463055, 0.47589691, 0.47716327, 0.47842963, + 0.47969599, 0.48096235, 0.4822287 , 0.48349506, 0.48476142, + 0.48602778, 0.48729414, 0.4885605 , 0.48982686, 0.49109322, + 0.49235957, 0.49362593, 0.49489229, 0.49615865, 0.49742501, + 0.49869137, 0.49995773, 0.50122409, 0.50249045, 0.5037568 , + 0.50502316, 0.50628952, 0.50755588, 0.50882224, 0.5100886 , + 0.51135496, 0.51262132, 0.51388768, 0.51515404, 0.51642039, + 0.51768675, 0.51895311, 0.52021947, 0.52148583, 0.52275219, + 0.52401855, 0.52528491, 0.52655126, 0.52781762, 0.52908398, + 0.53035034, 0.5316167 , 0.53288306, 0.53414942, 0.53541577, + 0.53668213, 0.53794849, 0.53921485, 0.54048121, 0.54174757, + 0.54301393, 0.54428029, 0.54554665, 0.546813 , 0.54807936, + 0.54934572, 0.55061208, 0.55187844, 0.5531448 , 0.55441116, + 0.55567752, 0.55694387, 0.55821023, 0.55947659, 0.56074295, + 0.56200931, 0.56327567, 0.56454203, 0.56580839, 0.56707475, + 0.56834111, 0.56960746, 0.57087382, 0.57214018, 0.57340654, + 0.5746729 , 0.57593926, 0.57720562, 0.57847198, 0.57973834, + 0.58100469, 0.58227105, 0.58353741, 0.58480377, 0.58607013, + 0.58733649, 0.58860285, 0.58986921, 0.59113556, 0.59240192, + 0.59366828, 0.59493464, 0.596201 , 0.59746736, 0.59873372, + 0.60000008, 0.60126644, 0.6025328 , 0.60379915, 0.60506551, + 0.60633187, 0.60759823, 0.60886459, 0.61013095, 0.61139731, + 0.61266367, 0.61393003, 0.61519638, 0.61646274, 0.6177291 , + 0.61899546, 0.62026182, 0.62152818, 0.62279454, 0.6240609 , + 0.62532725, 0.62659361, 0.62785997, 0.62912633, 0.63039269, + 0.63165905, 0.63292541, 0.63419177, 0.63545813, 0.63672449, + 0.63799084, 0.6392572 , 0.64052356, 0.64178992, 0.64305628, + 0.64432264, 0.645589 , 0.64685536, 0.64812172, 0.64938807, + 0.65065443, 0.65192079, 0.65318715, 0.65445351, 0.65571987, + 0.65698623, 0.65825259, 0.65951894, 0.6607853 , 0.66205166, + 0.66331802, 0.66458438, 0.66585074, 0.6671171 , 0.66838346, + 0.66964982, 0.67091618, 0.67218253, 0.67344889, 0.67471525, + 0.67598161, 0.67724797, 0.67851433, 0.67978069, 0.68104705, + 0.68231341, 0.68357976, 0.68484612, 0.68611248, 0.68737884, + 0.6886452 , 0.68991157, 0.69117793, 0.69244429, 0.69371065, + 0.694977 , 0.69624336, 0.69750972, 0.69877608, 0.70004244, + 0.7013088 , 0.70257516, 0.70384152, 0.70510788, 0.70637423, + 0.70764059, 0.70890695, 0.71017331, 0.71143967, 0.71270603, + 0.71397239, 0.71523875, 0.7165051 , 0.71777146, 0.71903782, + 0.72030418, 0.72157054, 0.7228369 , 0.72410326, 0.72536962, + 0.72663598, 0.72790234, 0.72916869, 0.73043505, 0.73170141, + 0.73296777, 0.73423413, 0.73550049, 0.73676685, 0.73803321, + 0.73929957, 0.74056592, 0.74183228, 0.74309864, 0.744365 , + 0.74563136, 0.74689772, 0.74816408, 0.74943044, 0.75069679, + 0.75196315, 0.75322951, 0.75449587, 0.75576223, 0.75702859, + 0.75829495, 0.75956131, 0.76082767, 0.76209403, 0.76336038, + 0.76462674, 0.7658931 , 0.76715946, 0.76842582, 0.76969218, + 0.77095854, 0.7722249 , 0.77349126, 0.77475761, 0.77602397, + 0.77729033, 0.77855669, 0.77982305, 0.78108941, 0.78235577, + 0.78362213, 0.78488848, 0.78615484, 0.7874212 , 0.78868756, + 0.78995392, 0.79122028, 0.79248664, 0.793753 , 0.79501936, + 0.79628572, 0.79755207, 0.79881843, 0.80008479, 0.80135115, + 0.80261751, 0.80388387, 0.80515023, 0.80641659, 0.80768294, + 0.8089493 , 0.81021566, 0.81148202, 0.81274838, 0.81401474, + 0.8152811 , 0.81654746, 0.81781382, 0.81908017, 0.82034653, + 0.82161289, 0.82287925, 0.82414561, 0.82541197, 0.82667833, + 0.82794469, 0.82921104, 0.8304774 , 0.83174376, 0.83301012, + 0.83427648, 0.83554284, 0.8368092 , 0.83807556, 0.83934192, + 0.84060828, 0.84187463, 0.84314099, 0.84440735, 0.84567371, + 0.84694007, 0.84820643, 0.84947279, 0.85073915, 0.85200551, + 0.85327186, 0.85453822, 0.85580458, 0.85707094, 0.8583373 , + 0.85960366, 0.86087002, 0.86213638, 0.86340273, 0.86466909, + 0.86593545, 0.86720181, 0.86846817, 0.86973453, 0.87100089, + 0.87226725, 0.87353361, 0.87479997, 0.87606632, 0.87733268, + 0.87859904, 0.8798654 , 0.88113176, 0.88239812, 0.88366448, + 0.88493084, 0.8861972 , 0.88746355, 0.88872991, 0.88999627, + 0.89126263, 0.89252899, 0.89379535, 0.89506171, 0.89632807, + 0.89759442, 0.89886078, 0.90012714, 0.9013935 , 0.90265986, + 0.90392622, 0.90519258, 0.90645894, 0.9077253 , 0.90899166, + 0.91025801, 0.91152437, 0.91279073, 0.91405709, 0.91532345, + 0.91658981, 0.91785617, 0.91912253, 0.92038889, 0.92165524, + 0.9229216 , 0.92418796, 0.92545432, 0.92672068, 0.92798704, + 0.9292534 , 0.93051976, 0.93178611, 0.93305247, 0.93431883, + 0.93558519, 0.93685155, 0.93811791, 0.93938427, 0.94065063, + 0.94191699, 0.94318335, 0.9444497 , 0.94571606, 0.94698242, + 0.94824878, 0.94951514, 0.9507815 , 0.95204786, 0.95331422, + 0.95458058, 0.95584693, 0.95711329, 0.95837965, 0.95964601, + 0.96091237, 0.96217873, 0.96344509, 0.96471145, 0.9659778 , + 0.96724416, 0.96851052, 0.96977688, 0.97104324, 0.9723096 , + 0.97357596, 0.97484232, 0.97610868, 0.97737504, 0.97864139, + 0.97990775, 0.98117411, 0.98244047, 0.98370683, 0.98497319, + 0.98623955, 0.98750591, 0.98877227, 0.99003862, 0.99130498, + 0.99257134, 0.9938377 , 0.99510406, 0.99637042, 0.99763678, + 0.99890314])], + array([4.3 , 4.27990775, 4.27647267, 4.27380094, 4.27112921, + 4.26864831, 4.26616742, 4.26368653, 4.26120563, 4.25872474, + 4.25624385, 4.25376295, 4.25128206, 4.248992 , 4.24651111, + 4.24422105, 4.24174016, 4.23925927, 4.23696921, 4.23467916, + 4.23219826, 4.22971737, 4.22723647, 4.22513726, 4.22265636, + 4.22036631, 4.21788541, 4.21559536, 4.2133053 , 4.21101525, + 4.20853436, 4.2062443 , 4.20395424, 4.20166419, 4.19937413, + 4.19708408, 4.19479402, 4.19250397, 4.19021391, 4.18792386, + 4.18582464, 4.18353458, 4.18105369, 4.17895447, 4.17685525, + 4.1745652 , 4.17227514, 4.16998509, 4.16788587, 4.16578665, + 4.16368743, 4.16158822, 4.15929816, 4.15738978, 4.15529056, + 4.15319135, 4.15109213, 4.14899291, 4.14689369, 4.14479448, + 4.14250442, 4.1404052 , 4.13830599, 4.13620677, 4.13410755, + 4.13181749, 4.12971828, 4.12761906, 4.12551984, 4.12322979, + 4.12113057, 4.11922219, 4.11693213, 4.11502376, 4.1127337 , + 4.11063448, 4.1087261 , 4.10681772, 4.10471851, 4.10261929, + 4.10090174, 4.09861169, 4.09670331, 4.09498577, 4.09288655, + 4.09097817, 4.08906979, 4.08735225, 4.08544387, 4.08353549, + 4.08181795, 4.07990957, 4.07819203, 4.07647449, 4.07456611, + 4.07284857, 4.07113102, 4.06941348, 4.06769594, 4.0659784 , + 4.06445169, 4.06273415, 4.06120745, 4.05929907, 4.05777237, + 4.05605483, 4.05452812, 4.05281058, 4.05128388, 4.04956633, + 4.04803963, 4.04632209, 4.04479538, 4.04326868, 4.04155114, + 4.04002444, 4.03830689, 4.03697103, 4.03525349, 4.03372678, + 4.03220008, 4.03067338, 4.02914667, 4.02761997, 4.02609327, + 4.02456656, 4.02303986, 4.02170399, 4.02017729, 4.01884142, + 4.01731472, 4.01578802, 4.01426131, 4.01292544, 4.01158958, + 4.01025371, 4.00872701, 4.00739114, 4.00605528, 4.00471941, + 4.00338355, 4.00185684, 4.00071182, 3.99937595, 3.99784925, + 3.99670422, 3.99536835, 3.99403249, 3.99288746, 3.99155159, + 3.99021573, 3.9890707 , 3.98773483, 3.98639897, 3.98525394, + 3.98410891, 3.98277305, 3.98162802, 3.98029215, 3.97914713, + 3.97819294, 3.97685707, 3.97571204, 3.97456701, 3.97342199, + 3.97227696, 3.97094109, 3.9699869 , 3.96884188, 3.96769685, + 3.96674266, 3.96559763, 3.9644526 , 3.96349841, 3.96235339, + 3.96120836, 3.96025417, 3.95910914, 3.95815495, 3.95720076, + 3.95605573, 3.95510154, 3.95414735, 3.95300233, 3.95204814, + 3.95128478, 3.95013976, 3.94918557, 3.94823138, 3.94727719, + 3.94651384, 3.94536881, 3.94460546, 3.94365127, 3.94269708, + 3.94193372, 3.94097953, 3.94002534, 3.93926199, 3.9383078 , + 3.93754445, 3.93659026, 3.93582691, 3.93487272, 3.93410937, + 3.93334602, 3.93258266, 3.93181931, 3.93086512, 3.93029261, + 3.92933842, 3.92857507, 3.92781171, 3.92704836, 3.92628501, + 3.92552166, 3.92494915, 3.92418579, 3.92361328, 3.92284993, + 3.92208658, 3.92132322, 3.92075071, 3.91998736, 3.91922401, + 3.91865149, 3.91807898, 3.91750647, 3.91693395, 3.91636144, + 3.91578892, 3.91502557, 3.9146439 , 3.91388054, 3.91330803, + 3.91273552, 3.912163 , 3.91178133, 3.91120881, 3.9106363 , + 3.91006379, 3.90949127, 3.90891876, 3.90853708, 3.90815541, + 3.90758289, 3.90701038, 3.9066287 , 3.90605619, 3.90586535, + 3.90529284, 3.90491116, 3.90452948, 3.90395697, 3.90357529, + 3.90319362, 3.90281194, 3.9026211 , 3.90223943, 3.90185775, + 3.90147608, 3.9010944 , 3.90090356, 3.90052189, 3.90014021, + 3.89994937, 3.89975854, 3.89937686, 3.89918602, 3.89899518, + 3.89861351, 3.89842267, 3.89804099, 3.89785015, 3.89765932, + 3.89746848, 3.89727764, 3.8970868 , 3.89670513, 3.89670513, + 3.89651429, 3.89632345, 3.89632345, 3.89613261, 3.89575094, + 3.89575094, 3.8955601 , 3.89536926, 3.89517842, 3.89498759, + 3.89479675, 3.89460591, 3.89460591, 3.89441507, 3.89422423, + 3.8940334 , 3.8940334 , 3.89384256, 3.89365172, 3.89365172, + 3.89346088, 3.89327004, 3.89327004, 3.89307921, 3.89288837, + 3.89269753, 3.89269753, 3.89250669, 3.89231585, 3.89212502, + 3.89193418, 3.89193418, 3.89174334, 3.8915525 , 3.89136166, + 3.89117083, 3.89097999, 3.89097999, 3.89078915, 3.89059831, + 3.89040747, 3.89021664, 3.8900258 , 3.88983496, 3.88983496, + 3.88964412, 3.88926245, 3.88907161, 3.88888077, 3.88868993, + 3.88849909, 3.88830826, 3.88811742, 3.88773574, 3.8875449 , + 3.88735407, 3.88716323, 3.88697239, 3.88659072, 3.88620904, + 3.8860182 , 3.88582736, 3.88544569, 3.88506401, 3.88487317, + 3.8844915 , 3.88430066, 3.88391898, 3.88372815, 3.88334647, + 3.88277396, 3.88258312, 3.88220144, 3.88181977, 3.88143809, + 3.88105642, 3.88067474, 3.88010222, 3.87952971, 3.87914804, + 3.87857552, 3.87819385, 3.87781217, 3.87723965, 3.87666714, + 3.87609463, 3.87552211, 3.8749496 , 3.87437709, 3.87361373, + 3.87304122, 3.87246871, 3.87170535, 3.87113284, 3.87036949, + 3.8694153 , 3.86884279, 3.86807943, 3.86712524, 3.86617105, + 3.8654077 , 3.86445351, 3.86349932, 3.86254513, 3.8614001 , + 3.86025508, 3.85930089, 3.85815586, 3.85681999, 3.85567497, + 3.85414826, 3.85300323, 3.85147653, 3.84994983, 3.84842312, + 3.84689642, 3.84498804, 3.8432705 , 3.84136212, 3.8392629 , + 3.83716368, 3.83506447, 3.83258357, 3.83010268, 3.82743095, + 3.82475922, 3.82189665, 3.81884324, 3.81559899, 3.81216391, + 3.80853799, 3.80491207, 3.80090447, 3.79689687, 3.79269844, + 3.78830917, 3.78391989, 3.77914894, 3.77456883, 3.76960704, + 3.76502693, 3.76006515, 3.75510336, 3.75014157, 3.74517979, + 3.740218 , 3.73506538, 3.72991275, 3.72476012, 3.71941666, + 3.71388236, 3.70815722, 3.70224125, 3.69613443, 3.6894551 , + 3.6823941 , 3.67476058, 3.66636371, 3.65663097, 3.64556237, + 3.63220371, 3.61521913, 3.5919369 , 3.55720439, 3.50109804, + 3.4089233 ]))), + 'Positive electrode OCP entropic change [V.K-1]': lico2_entropic_change_Ai2020_function, + "Positive electrode Paris' law constant b": 1.12, + "Positive electrode Paris' law constant m": 2.2, + "Positive electrode Poisson's ratio": 0.2, + "Positive electrode Young's modulus [Pa]": 375000000000.0, + 'Positive electrode activation energy for cracking rate [J.mol-1]': 0.0, + 'Positive electrode active material volume fraction': 0.62, + 'Positive electrode cation signed stoichiometry': -1.0, + 'Positive electrode charge transfer coefficient': 0.5, + 'Positive electrode conductivity [S.m-1]': 10.0, + 'Positive electrode cracking rate': lico2_cracking_rate_Ai2020, + 'Positive electrode critical stress [Pa]': 375000000.0, + 'Positive electrode density [kg.m-3]': 2470.0, + 'Positive electrode diffusivity [m2.s-1]': lico2_diffusivity_Dualfoil1998, + 'Positive electrode double-layer capacity [F.m-2]': 0.2, + 'Positive electrode electrons in reaction': 1.0, + 'Positive electrode exchange-current density [A.m-2]': lico2_electrolyte_exchange_current_density_Dualfoil1998, + 'Positive electrode initial crack length [m]': 2e-08, + 'Positive electrode initial crack width [m]': 1.5e-08, + 'Positive electrode number of cracks per unit area [m-2]': 3180000000000000.0, + 'Positive electrode partial molar volume [m3.mol-1]': -7.28e-07, + 'Positive electrode porosity': 0.32, + 'Positive electrode reaction-driven LAM factor [m3.mol-1]': 0.0, + 'Positive electrode reference concentration for free of deformation [mol.m-3]': 0.0, + 'Positive electrode specific heat capacity [J.kg-1.K-1]': 1080.2, + 'Positive electrode surface area to volume ratio [m-1]': 620000.0, + 'Positive electrode thermal conductivity [W.m-1.K-1]': 1.58, + 'Positive electrode thickness [m]': 6.8e-05, + 'Positive electrode volume change': lico2_volume_change_Ai2020, + 'Positive particle radius [m]': 3e-06, + 'Ratio of lithium moles to SEI moles': 2.0, + 'Reference temperature [K]': 298.15, + 'SEI growth activation energy [J.mol-1]': 0.0, + 'SEI kinetic rate constant [m.s-1]': 1e-12, + 'SEI open-circuit potential [V]': 0.4, + 'SEI reaction exchange current density [A.m-2]': 1.5e-07, + 'SEI resistivity [Ohm.m]': 200000.0, + 'Separator Bruggeman coefficient (electrolyte)': 1.5, + 'Separator density [kg.m-3]': 2470.0, + 'Separator porosity': 0.5, + 'Separator specific heat capacity [J.kg-1.K-1]': 1080.2, + 'Separator thermal conductivity [W.m-1.K-1]': 0.334, + 'Separator thickness [m]': 2.5e-05, + 'Total heat transfer coefficient [W.m-2.K-1]': 35.0, + 'Typical current [A]': 2.28, + 'Typical electrolyte concentration [mol.m-3]': 1000.0, + 'Upper voltage cut-off [V]': 4.2} \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Chen2020.py b/pybamm/input/parameters/lithium_ion/Chen2020.py new file mode 100644 index 0000000000..b75afbf904 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/Chen2020.py @@ -0,0 +1,311 @@ +def graphite_LGM50_ocp_Chen2020(sto): + """ + LG M50 Graphite open-circuit potential as a function of stochiometry, fit taken + from [1]. + + References + ---------- + .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the + Electrochemical Society 167 (2020): 080534. + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + + Returns + ------- + :class:`pybamm.Symbol` + Open circuit potential + """ + + u_eq = ( + 1.9793 * exp(-39.3631 * sto) + + 0.2482 + - 0.0909 * tanh(29.8538 * (sto - 0.1234)) + - 0.04478 * tanh(14.9159 * (sto - 0.2769)) + - 0.0205 * tanh(30.4444 * (sto - 0.6103)) + ) + + return u_eq + + +def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( + c_e, c_s_surf, c_s_max, T +): + """ + Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in + EC:DMC. + + References + ---------- + .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the + Electrochemical Society 167 (2020): 080534. + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + m_ref = 6.48e-7 # (A/m2)(mol/m3)**1.5 - includes ref concentrations + E_r = 35000 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + return ( + m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + ) + + +def nmc_LGM50_ocp_Chen2020(sto): + """ + LG M50 NMC open circuit potential as a function of stochiometry, fit taken + from [1]. + + References + ---------- + .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the + Electrochemical Society 167 (2020): 080534. + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + + Returns + ------- + :class:`pybamm.Symbol` + Open circuit potential + """ + + u_eq = ( + -0.8090 * sto + + 4.4875 + - 0.0428 * tanh(18.5138 * (sto - 0.5542)) + - 17.7326 * tanh(15.7890 * (sto - 0.3117)) + + 17.5842 * tanh(15.9308 * (sto - 0.3120)) + ) + + return u_eq + + +def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_max, T): + """ + Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in + EC:DMC. + + References + ---------- + .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the + Electrochemical Society 167 (2020): 080534. + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + m_ref = 3.42e-6 # (A/m2)(mol/m3)**1.5 - includes ref concentrations + E_r = 17800 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + return ( + m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + ) + + +def electrolyte_diffusivity_Nyman2008(c_e, T): + """ + Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data + comes from [1] + + References + ---------- + .. [1] A. Nyman, M. Behm, and G. Lindbergh, "Electrochemical characterisation and + modelling of the mass transport phenomena in LiPF6-EC-EMC electrolyte," + Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + D_c_e = 8.794e-11 * (c_e / 1000) ** 2 - 3.972e-10 * (c_e / 1000) + 4.862e-10 + + # Nyman et al. (2008) does not provide temperature dependence + + return D_c_e + + +def electrolyte_conductivity_Nyman2008(c_e, T): + """ + Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data + comes from [1]. + + References + ---------- + .. [1] A. Nyman, M. Behm, and G. Lindbergh, "Electrochemical characterisation and + modelling of the mass transport phenomena in LiPF6-EC-EMC electrolyte," + Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + sigma_e = ( + 0.1297 * (c_e / 1000) ** 3 - 2.51 * (c_e / 1000) ** 1.5 + 3.329 * (c_e / 1000) + ) + + # Nyman et al. (2008) does not provide temperature dependence + + return sigma_e + + +def get_parameter_values(): + return { + "1 + dlnf/dlnc": 1.0, + "Ambient temperature [K]": 298.15, + "Bulk solvent concentration [mol.m-3]": 2636.0, + "Cation transference number": 0.2594, + "Cell cooling surface area [m2]": 0.00531, + "Cell thermal expansion coefficient [m.K-1]": 1.1e-06, + "Cell volume [m3]": 2.42e-05, + "Current function [A]": 5.0, + "EC diffusivity [m2.s-1]": 2e-18, + "EC initial concentration in electrolyte [mol.m-3]": 4541.0, + "Electrode height [m]": 0.065, + "Electrode width [m]": 1.58, + "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Nyman2008, + "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Nyman2008, + "Initial concentration in electrolyte [mol.m-3]": 1000.0, + "Initial concentration in negative electrode [mol.m-3]": 29866.0, + "Initial concentration in positive electrode [mol.m-3]": 17038.0, + "Initial inner SEI thickness [m]": 2.5e-09, + "Initial outer SEI thickness [m]": 2.5e-09, + "Initial temperature [K]": 298.15, + "Inner SEI electron conductivity [S.m-1]": 8.95e-14, + "Inner SEI lithium interstitial diffusivity [m2.s-1]": 1e-20, + "Inner SEI open-circuit potential [V]": 0.1, + "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Inner SEI reaction proportion": 0.5, + "Lithium interstitial reference concentration [mol.m-3]": 15.0, + "Lower voltage cut-off [V]": 2.5, + "Maximum concentration in negative electrode [mol.m-3]": 33133.0, + "Maximum concentration in positive electrode [mol.m-3]": 63104.0, + "Negative current collector conductivity [S.m-1]": 58411000.0, + "Negative current collector density [kg.m-3]": 8960.0, + "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, + "Negative current collector thermal conductivity [W.m-1.K-1]": 401.0, + "Negative current collector thickness [m]": 1.2e-05, + "Negative electrode Bruggeman coefficient (electrode)": 1.5, + "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, + "Negative electrode OCP [V]": graphite_LGM50_ocp_Chen2020, + "Negative electrode OCP entropic change [V.K-1]": 0.0, + "Negative electrode active material volume fraction": 0.75, + "Negative electrode cation signed stoichiometry": -1.0, + "Negative electrode charge transfer coefficient": 0.5, + "Negative electrode conductivity [S.m-1]": 215.0, + "Negative electrode density [kg.m-3]": 1657.0, + "Negative electrode diffusivity [m2.s-1]": 3.3e-14, + "Negative electrode double-layer capacity [F.m-2]": 0.2, + "Negative electrode electrons in reaction": 1.0, + "Negative electrode exchange-current density [A.m-2]": graphite_LGM50_electrolyte_exchange_current_density_Chen2020, + "Negative electrode porosity": 0.25, + "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, + "Negative electrode thickness [m]": 8.52e-05, + "Negative particle radius [m]": 5.86e-06, + "Nominal cell capacity [A.h]": 5.0, + "Number of cells connected in series to make a battery": 1.0, + "Number of electrodes connected in parallel to make a cell": 1.0, + "Outer SEI open-circuit potential [V]": 0.8, + "Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Outer SEI solvent diffusivity [m2.s-1]": 2.5000000000000002e-22, + "Positive current collector conductivity [S.m-1]": 36914000.0, + "Positive current collector density [kg.m-3]": 2700.0, + "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, + "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, + "Positive current collector thickness [m]": 1.6e-05, + "Positive electrode Bruggeman coefficient (electrode)": 1.5, + "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, + "Positive electrode OCP [V]": nmc_LGM50_ocp_Chen2020, + "Positive electrode OCP entropic change [V.K-1]": 0.0, + "Positive electrode active material volume fraction": 0.665, + "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode charge transfer coefficient": 0.5, + "Positive electrode conductivity [S.m-1]": 0.18, + "Positive electrode density [kg.m-3]": 3262.0, + "Positive electrode diffusivity [m2.s-1]": 4e-15, + "Positive electrode double-layer capacity [F.m-2]": 0.2, + "Positive electrode electrons in reaction": 1.0, + "Positive electrode exchange-current density [A.m-2]": nmc_LGM50_electrolyte_exchange_current_density_Chen2020, + "Positive electrode porosity": 0.335, + "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, + "Positive electrode thickness [m]": 7.56e-05, + "Positive particle radius [m]": 5.22e-06, + "Ratio of lithium moles to SEI moles": 2.0, + "Reference temperature [K]": 298.15, + "SEI growth activation energy [J.mol-1]": 0.0, + "SEI kinetic rate constant [m.s-1]": 1e-12, + "SEI open-circuit potential [V]": 0.4, + "SEI reaction exchange current density [A.m-2]": 1.5e-07, + "SEI resistivity [Ohm.m]": 200000.0, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator density [kg.m-3]": 397.0, + "Separator porosity": 0.47, + "Separator specific heat capacity [J.kg-1.K-1]": 700.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.16, + "Separator thickness [m]": 1.2e-05, + "Total heat transfer coefficient [W.m-2.K-1]": 10.0, + "Typical current [A]": 5.0, + "Typical electrolyte concentration [mol.m-3]": 1000.0, + "Upper voltage cut-off [V]": 4.2, + } diff --git a/pybamm/input/parameters/lithium_ion/Chen2020_composite.py b/pybamm/input/parameters/lithium_ion/Chen2020_composite.py new file mode 100644 index 0000000000..fb51f76405 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/Chen2020_composite.py @@ -0,0 +1,466 @@ +def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( + c_e, c_s_surf, c_s_max, T +): + """ + Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in + EC:DMC. + + References + ---------- + .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the + Electrochemical Society 167 (2020): 080534. + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + m_ref = 6.48e-7 # (A/m2)(mol/m3)**1.5 - includes ref concentrations + E_r = 35000 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + return ( + m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + ) + +def silicon_ocp_lithiation_Mark2016(sto): + """ + silicon Open Circuit Potential (OCP) as a a function of the + stochiometry. The fit is taken from the Enertech cell [1], which is only accurate + for 0 < sto < 1. + + References + ---------- + .. [1] Verbrugge M, Baker D, Xiao X. Formulation for the treatment of multiple + electrochemical reactions and associated speciation for the Lithium-Silicon + electrode[J]. Journal of The Electrochemical Society, 2015, 163(2): A262. + + Parameters + ---------- + sto: double + Stochiometry of material (li-fraction) + + Returns + ------- + :class:`pybamm.Symbol` + OCP [V] + """ + p1 = -96.63 + p2 = 372.6 + p3 = -587.6 + p4 = 489.9 + p5 = -232.8 + p6 = 62.99 + p7 = -9.286 + p8 = 0.8633 + + U_lithiation = ( + p1 * sto**7 + + p2 * sto**6 + + p3 * sto**5 + + p4 * sto**4 + + p5 * sto**3 + + p6 * sto**2 + + p7 * sto + + p8 + ) + return U_lithiation + +def silicon_ocp_delithiation_Mark2016(sto): + """ + silicon Open Circuit Potential (OCP) as a a function of the + stochiometry. The fit is taken from the Enertech cell [1], which is only accurate + for 0 < sto < 1. + + References + ---------- + .. [1] Verbrugge M, Baker D, Xiao X. Formulation for the treatment of multiple + electrochemical reactions and associated speciation for the Lithium-Silicon + electrode[J]. Journal of The Electrochemical Society, 2015, 163(2): A262. + + Parameters + ---------- + sto: double + Stochiometry of material (li-fraction) + + Returns + ------- + :class:`pybamm.Symbol` + OCP [V] + """ + p1 = -51.02 + p2 = 161.3 + p3 = -205.7 + p4 = 140.2 + p5 = -58.76 + p6 = 16.87 + p7 = -3.792 + p8 = 0.9937 + + U_delithiation = ( + p1 * sto**7 + + p2 * sto**6 + + p3 * sto**5 + + p4 * sto**4 + + p5 * sto**3 + + p6 * sto**2 + + p7 * sto + + p8 + ) + return U_delithiation + +def silicon_LGM50_electrolyte_exchange_current_density_Chen2020( + c_e, c_s_surf, c_s_max, T +): + """ + Exchange-current density for Butler-Volmer reactions between silicon and LiPF6 in + EC:DMC. + + References + ---------- + .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the + Electrochemical Society 167 (2020): 080534. + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + + m_ref = ( + 6.48e-7 * 28700 / 278000 + ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations + E_r = 35000 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + return ( + m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + ) + +def nmc_LGM50_ocp_Chen2020(sto): + """ + LG M50 NMC open circuit potential as a function of stochiometry, fit taken + from [1]. + + References + ---------- + .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the + Electrochemical Society 167 (2020): 080534. + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + + Returns + ------- + :class:`pybamm.Symbol` + Open circuit potential + """ + + u_eq = ( + -0.8090 * sto + + 4.4875 + - 0.0428 * tanh(18.5138 * (sto - 0.5542)) + - 17.7326 * tanh(15.7890 * (sto - 0.3117)) + + 17.5842 * tanh(15.9308 * (sto - 0.3120)) + ) + + return u_eq + +def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_max, T): + """ + Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in + EC:DMC. + + References + ---------- + .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the + Electrochemical Society 167 (2020): 080534. + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + m_ref = 3.42e-6 # (A/m2)(mol/m3)**1.5 - includes ref concentrations + E_r = 17800 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + return ( + m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + ) + +def electrolyte_diffusivity_Nyman2008(c_e, T): + """ + Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data + comes from [1] + + References + ---------- + .. [1] A. Nyman, M. Behm, and G. Lindbergh, "Electrochemical characterisation and + modelling of the mass transport phenomena in LiPF6-EC-EMC electrolyte," + Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + D_c_e = 8.794e-11 * (c_e / 1000) ** 2 - 3.972e-10 * (c_e / 1000) + 4.862e-10 + + # Nyman et al. (2008) does not provide temperature dependence + + return D_c_e + +def electrolyte_conductivity_Nyman2008(c_e, T): + """ + Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data + comes from [1]. + + References + ---------- + .. [1] A. Nyman, M. Behm, and G. Lindbergh, "Electrochemical characterisation and + modelling of the mass transport phenomena in LiPF6-EC-EMC electrolyte," + Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + sigma_e = ( + 0.1297 * (c_e / 1000) ** 3 - 2.51 * (c_e / 1000) ** 1.5 + 3.329 * (c_e / 1000) + ) + + # Nyman et al. (2008) does not provide temperature dependence + + return sigma_e + +def get_parameter_values(): + return {'1 + dlnf/dlnc': 1.0, + 'Ambient temperature [K]': 298.15, + 'Cation transference number': 0.2594, + 'Cell cooling surface area [m2]': 0.00531, + 'Cell thermal expansion coefficient [m.K-1]': 1.1e-06, + 'Cell volume [m3]': 2.42e-05, + 'Current function [A]': 5.0, + 'Electrode height [m]': 0.065, + 'Electrode width [m]': 1.58, + 'Electrolyte conductivity [S.m-1]': electrolyte_conductivity_Nyman2008, + 'Electrolyte diffusivity [m2.s-1]': electrolyte_diffusivity_Nyman2008, + 'Initial concentration in electrolyte [mol.m-3]': 1000.0, + 'Initial concentration in negative electrode [mol.m-3]': 29866.0, + 'Initial concentration in positive electrode [mol.m-3]': 17038.0, + 'Initial temperature [K]': 298.15, + 'Lower voltage cut-off [V]': 2.5, + 'Maximum concentration in positive electrode [mol.m-3]': 63104.0, + 'Negative current collector conductivity [S.m-1]': 58411000.0, + 'Negative current collector density [kg.m-3]': 8960.0, + 'Negative current collector specific heat capacity [J.kg-1.K-1]': 385.0, + 'Negative current collector thermal conductivity [W.m-1.K-1]': 401.0, + 'Negative current collector thickness [m]': 1.2e-05, + 'Negative electrode Bruggeman coefficient (electrode)': 1.5, + 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5, + 'Negative electrode cation signed stoichiometry': -1.0, + 'Negative electrode charge transfer coefficient': 0.5, + 'Negative electrode conductivity [S.m-1]': 215.0, + 'Negative electrode double-layer capacity [F.m-2]': 0.2, + 'Negative electrode porosity': 0.25, + 'Negative electrode specific heat capacity [J.kg-1.K-1]': 700.0, + 'Negative electrode thermal conductivity [W.m-1.K-1]': 1.7, + 'Negative electrode thickness [m]': 8.52e-05, + 'Nominal cell capacity [A.h]': 5.0, + 'Number of cells connected in series to make a battery': 1.0, + 'Number of electrodes connected in parallel to make a cell': 1.0, + 'Positive current collector conductivity [S.m-1]': 36914000.0, + 'Positive current collector density [kg.m-3]': 2700.0, + 'Positive current collector specific heat capacity [J.kg-1.K-1]': 897.0, + 'Positive current collector thermal conductivity [W.m-1.K-1]': 237.0, + 'Positive current collector thickness [m]': 1.6e-05, + 'Positive electrode Bruggeman coefficient (electrode)': 1.5, + 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5, + 'Positive electrode OCP [V]': nmc_LGM50_ocp_Chen2020, + 'Positive electrode OCP entropic change [V.K-1]': 0.0, + 'Positive electrode active material volume fraction': 0.665, + 'Positive electrode cation signed stoichiometry': -1.0, + 'Positive electrode charge transfer coefficient': 0.5, + 'Positive electrode conductivity [S.m-1]': 0.18, + 'Positive electrode density [kg.m-3]': 3262.0, + 'Positive electrode diffusivity [m2.s-1]': 4e-15, + 'Positive electrode double-layer capacity [F.m-2]': 0.2, + 'Positive electrode electrons in reaction': 1.0, + 'Positive electrode exchange-current density [A.m-2]': nmc_LGM50_electrolyte_exchange_current_density_Chen2020, + 'Positive electrode porosity': 0.335, + 'Positive electrode specific heat capacity [J.kg-1.K-1]': 700.0, + 'Positive electrode thermal conductivity [W.m-1.K-1]': 2.1, + 'Positive electrode thickness [m]': 7.56e-05, + 'Positive particle radius [m]': 5.22e-06, + 'Primary: EC diffusivity [m2.s-1]': 2e-18, + 'Primary: EC initial concentration in electrolyte [mol.m-3]': 4541.0, + 'Primary: Initial concentration in negative electrode [mol.m-3]': 27700.0, + 'Primary: Initial inner SEI thickness [m]': 2.5e-09, + 'Primary: Initial outer SEI thickness [m]': 2.5e-09, + 'Primary: Inner SEI partial molar volume [m3.mol-1]': 9.585e-05, + 'Primary: Maximum concentration in negative electrode [mol.m-3]': 28700.0, + 'Primary: Negative electrode OCP [V]': ('graphite_ocp_Enertech_Ai2020, + ([array([0.00000000e+00, 5.00000000e-04, 1.27041000e-03, 1.52479000e-03, + 1.90595000e-03, 2.22355800e-03, 4.06054700e-03, 4.82015100e-03, + 6.46394300e-03, 7.41337000e-03, 8.61650600e-03, 9.12341700e-03, + 1.07682260e-02, 1.26650460e-02, 1.41183440e-02, 1.77867520e-02, + 2.06946900e-02, 2.39837990e-02, 3.05021750e-02, 3.60011350e-02, + 3.96066620e-02, 5.91480830e-02, 6.12979420e-02, 7.13498330e-02, + 8.02655260e-02, 1.19208079e-01, 1.28120548e-01, 1.34253707e-01, + 1.41584594e-01, 1.50874177e-01, 1.60609131e-01, 1.70345957e-01, + 1.89747769e-01, 2.09222253e-01, 2.19017730e-01, 2.28756579e-01, + 2.38552575e-01, 2.48349231e-01, 2.58084023e-01, 2.67821184e-01, + 2.87415350e-01, 2.97209811e-01, 3.07004942e-01, 3.16798396e-01, + 3.26534032e-01, 3.36321558e-01, 3.46061758e-01, 3.55856392e-01, + 3.65593044e-01, 3.75388012e-01, 3.85120781e-01, 3.94915577e-01, + 4.04717479e-01, 4.14512102e-01, 4.24244871e-01, 4.34039331e-01, + 4.43770240e-01, 4.53564862e-01, 4.63298139e-01, 4.73034456e-01, + 4.82766544e-01, 4.92564552e-01, 5.02302892e-01, 5.12042595e-01, + 5.21833161e-01, 5.31572182e-01, 5.41369033e-01, 5.51104831e-01, + 5.60899800e-01, 5.70635608e-01, 5.80434806e-01, 5.90235692e-01, + 5.99977407e-01, 6.09716266e-01, 6.19517822e-01, 6.29313635e-01, + 6.39049108e-01, 6.48790152e-01, 6.58584104e-01, 6.68320248e-01, + 6.78055040e-01, 6.87851869e-01, 6.97649380e-01, 7.07389072e-01, + 7.17188097e-01, 7.26977148e-01, 7.36776336e-01, 7.46515866e-01, + 7.56259106e-01, 7.66055091e-01, 7.75789039e-01, 7.85537861e-01, + 7.95329790e-01, 8.05080646e-01, 8.14827099e-01, 8.24570003e-01, + 8.34370889e-01, 8.44173289e-01, 8.53913187e-01, 8.63650510e-01, + 8.73392073e-01, 8.83126865e-01, 8.92918286e-01, 9.02708516e-01, + 9.12443308e-01, 9.22232533e-01, 9.32019724e-01, 9.41812832e-01, + 9.51602392e-01, 9.61392795e-01, 9.70177652e-01, 9.76051358e-01, + 9.80413449e-01, 9.83887804e-01, 9.86792703e-01, 9.89255096e-01, + 9.91401407e-01, 9.93359929e-01, 9.95130154e-01, 9.96776304e-01, + 9.98229440e-01, 9.99241066e-01, 9.99746961e-01, 9.99936448e-01, + 1.00000000e+00])], + array([3.5 , 3. , 1.04 , 1.01 , 0.97265384, + 0.94249055, 0.81624059, 0.78028093, 0.71896262, 0.69137476, + 0.66139178, 0.64996223, 0.6165173 , 0.58331086, 0.56083078, + 0.51243948, 0.48025136, 0.44849587, 0.39598881, 0.35950768, + 0.33847798, 0.25631956, 0.25117361, 0.23605532, 0.23100922, + 0.2232966 , 0.21828424, 0.21327386, 0.20822836, 0.20320974, + 0.19862098, 0.19381638, 0.18416691, 0.17679053, 0.17383044, + 0.17096326, 0.1679035 , 0.16464998, 0.16149133, 0.15859383, + 0.15339916, 0.15100232, 0.14886213, 0.14691891, 0.14532814, + 0.14400211, 0.14290212, 0.14201426, 0.14131601, 0.1407591 , + 0.14031432, 0.13994232, 0.13961785, 0.13932541, 0.13905101, + 0.1387793 , 0.13851741, 0.1382589 , 0.13798129, 0.13767223, + 0.13732933, 0.13690322, 0.13639024, 0.13575758, 0.1349471 , + 0.13392324, 0.13262168, 0.13098947, 0.12896492, 0.12654999, + 0.12374288, 0.12077083, 0.11792963, 0.11537998, 0.11320542, + 0.11136648, 0.10985549, 0.10857895, 0.10752068, 0.10663254, + 0.10589376, 0.10526061, 0.10471319, 0.10425437, 0.10384562, + 0.10347712, 0.10315393, 0.10285654, 0.10258744, 0.10233828, + 0.10210199, 0.1018809 , 0.10167642, 0.10146588, 0.10126417, + 0.10106263, 0.10087041, 0.10068096, 0.10048922, 0.10030044, + 0.10009972, 0.0998771 , 0.09962899, 0.09933262, 0.09895842, + 0.09844254, 0.09768364, 0.096492 , 0.09451079, 0.09113682, + 0.08611519, 0.08107875, 0.07604037, 0.07099153, 0.06589833, + 0.06084405, 0.05581012, 0.0506707 , 0.0455624 , 0.04039266, + 0.03526127, 0.03024266, 0.02485077, 0.0192515 , 0.00499468]))), + 'Primary: Negative electrode OCP entropic change [V.K-1]': 0.0, + 'Primary: Negative electrode active material volume fraction': 0.735, + 'Primary: Negative electrode density [kg.m-3]': 1657.0, + 'Primary: Negative electrode diffusivity [m2.s-1]': 5.5e-14, + 'Primary: Negative electrode electrons in reaction': 1.0, + 'Primary: Negative electrode exchange-current density [A.m-2]': graphite_LGM50_electrolyte_exchange_current_density_Chen2020, + 'Primary: Negative particle radius [m]': 5.86e-06, + 'Primary: Outer SEI partial molar volume [m3.mol-1]': 9.585e-05, + 'Primary: Ratio of lithium moles to SEI moles': 2.0, + 'Primary: SEI growth activation energy [J.mol-1]': 0.0, + 'Primary: SEI kinetic rate constant [m.s-1]': 1e-12, + 'Primary: SEI open-circuit potential [V]': 0.4, + 'Primary: SEI resistivity [Ohm.m]': 200000.0, + 'Reference temperature [K]': 298.15, + 'Secondary: EC diffusivity [m2.s-1]': 2e-18, + 'Secondary: EC initial concentration in electrolyte [mol.m-3]': 4541.0, + 'Secondary: Initial concentration in negative electrode [mol.m-3]': 276610.0, + 'Secondary: Initial inner SEI thickness [m]': 2.5e-09, + 'Secondary: Initial outer SEI thickness [m]': 2.5e-09, + 'Secondary: Inner SEI partial molar volume [m3.mol-1]': 9.585e-05, + 'Secondary: Maximum concentration in negative electrode [mol.m-3]': 278000.0, + 'Secondary: Negative electrode OCP entropic change [V.K-1]': 0.0, + 'Secondary: Negative electrode active material volume fraction': 0.015, + 'Secondary: Negative electrode delithiation OCP [V]': silicon_ocp_delithiation_Mark2016, + 'Secondary: Negative electrode density [kg.m-3]': 2650.0, + 'Secondary: Negative electrode diffusivity [m2.s-1]': 1.67e-14, + 'Secondary: Negative electrode electrons in reaction': 1.0, + 'Secondary: Negative electrode exchange-current density [A.m-2]': silicon_LGM50_electrolyte_exchange_current_density_Chen2020, + 'Secondary: Negative electrode lithiation OCP [V]': silicon_ocp_lithiation_Mark2016, + 'Secondary: Negative particle radius [m]': 1.52e-06, + 'Secondary: Outer SEI partial molar volume [m3.mol-1]': 9.585e-05, + 'Secondary: Ratio of lithium moles to SEI moles': 2.0, + 'Secondary: SEI growth activation energy [J.mol-1]': 0.0, + 'Secondary: SEI kinetic rate constant [m.s-1]': 1e-12, + 'Secondary: SEI open-circuit potential [V]': 0.4, + 'Secondary: SEI resistivity [Ohm.m]': 200000.0, + 'Separator Bruggeman coefficient (electrolyte)': 1.5, + 'Separator density [kg.m-3]': 397.0, + 'Separator porosity': 0.47, + 'Separator specific heat capacity [J.kg-1.K-1]': 700.0, + 'Separator thermal conductivity [W.m-1.K-1]': 0.16, + 'Separator thickness [m]': 1.2e-05, + 'Total heat transfer coefficient [W.m-2.K-1]': 10.0, + 'Typical current [A]': 5.0, + 'Typical electrolyte concentration [mol.m-3]': 1000.0, + 'Upper voltage cut-off [V]': 4.2} \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Ecker2015.py b/pybamm/input/parameters/lithium_ion/Ecker2015.py new file mode 100644 index 0000000000..959703f315 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/Ecker2015.py @@ -0,0 +1,521 @@ +def graphite_diffusivity_Ecker2015(sto, T): + """ + Graphite diffusivity as a function of stochiometry [1, 2, 3]. + + References + ---------- + .. [1] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of + a lithium-ion battery i. determination of parameters." Journal of the + Electrochemical Society 162.9 (2015): A1836-A1848. + .. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of + a lithium-ion battery ii. model validation." Journal of The Electrochemical + Society 162.9 (2015): A1849-A1857. + .. [3] Richardson, Giles, et. al. "Generalised single particle models for + high-rate operation of graded lithium-ion electrodes: Systematic derivation + and validation." Electrochemica Acta 339 (2020): 135862 + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + D_ref = 8.4e-13 * exp(-11.3 * sto) + 8.2e-15 + E_D_s = 3.03e4 + arrhenius = exp(-E_D_s / (constants.R * T)) * exp(E_D_s / (constants.R * 296)) + + return D_ref * arrhenius + +def graphite_ocp_Ecker2015_function(sto): + """ + Graphite OCP as a function of stochiometry [1, 2, 3]. + + References + ---------- + .. [1] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of + a lithium-ion battery i. determination of parameters." Journal of the + Electrochemical Society 162.9 (2015): A1836-A1848. + .. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of + a lithium-ion battery ii. model validation." Journal of The Electrochemical + Society 162.9 (2015): A1849-A1857. + .. [3] Richardson, Giles, et. al. "Generalised single particle models for + high-rate operation of graded lithium-ion electrodes: Systematic derivation + and validation." Electrochemica Acta 339 (2020): 135862 + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + + Returns + ------- + :class:`pybamm.Symbol` + Open circuit potential + """ + + # Graphite negative electrode from Ecker, Kabitz, Laresgoiti et al. + # Analytical fit (WebPlotDigitizer + gnuplot) + a = 0.716502 + b = 369.028 + c = 0.12193 + d = 35.6478 + e = 0.0530947 + g = 0.0169644 + h = 27.1365 + i = 0.312832 + j = 0.0199313 + k = 28.5697 + m = 0.614221 + n = 0.931153 + o = 36.328 + p = 1.10743 + q = 0.140031 + r = 0.0189193 + s = 21.1967 + t = 0.196176 + + u_eq = ( + a * exp(-b * sto) + + c * exp(-d * (sto - e)) + - r * tanh(s * (sto - t)) + - g * tanh(h * (sto - i)) + - j * tanh(k * (sto - m)) + - n * exp(o * (sto - p)) + + q + ) + + return u_eq + +def graphite_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_max, T): + """ + Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in + EC:DMC. + + References + ---------- + .. [1] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of + a lithium-ion battery i. determination of parameters." Journal of the + Electrochemical Society 162.9 (2015): A1836-A1848. + .. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of + a lithium-ion battery ii. model validation." Journal of The Electrochemical + Society 162.9 (2015): A1849-A1857. + .. [3] Richardson, Giles, et. al. "Generalised single particle models for + high-rate operation of graded lithium-ion electrodes: Systematic derivation + and validation." Electrochemica Acta 339 (2020): 135862 + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + + k_ref = 1.11 * 1e-10 + + # multiply by Faraday's constant to get correct units + m_ref = constants.F * k_ref # (A/m2)(mol/m3)**1.5 - includes ref concentrations + E_r = 53400 + + arrhenius = exp(-E_r / (constants.R * T)) * exp(E_r / (constants.R * 296.15)) + + return ( + m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + ) + +def nco_diffusivity_Ecker2015(sto, T): + """ + NCO diffusivity as a function of stochiometry [1, 2, 3]. + + References + ---------- + .. [1] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of + a lithium-ion battery i. determination of parameters." Journal of the + Electrochemical Society 162.9 (2015): A1836-A1848. + .. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of + a lithium-ion battery ii. model validation." Journal of The Electrochemical + Society 162.9 (2015): A1849-A1857. + .. [3] Richardson, Giles, et. al. "Generalised single particle models for + high-rate operation of graded lithium-ion electrodes: Systematic derivation + and validation." Electrochemica Acta 339 (2020): 135862 + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + D_ref = 3.7e-13 - 3.4e-13 * exp(-12 * (sto - 0.62) * (sto - 0.62)) + E_D_s = 8.06e4 + arrhenius = exp(-E_D_s / (constants.R * T)) * exp(E_D_s / (constants.R * 296.15)) + + return D_ref * arrhenius + +def nco_ocp_Ecker2015_function(sto): + """ + NCO OCP as a function of stochiometry [1, 2, 3]. + + References + ---------- + .. [1] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of + a lithium-ion battery i. determination of parameters." Journal of the + Electrochemical Society 162.9 (2015): A1836-A1848. + .. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of + a lithium-ion battery ii. model validation." Journal of The Electrochemical + Society 162.9 (2015): A1849-A1857. + .. [3] Richardson, Giles, et. al. "Generalised single particle models for + high-rate operation of graded lithium-ion electrodes: Systematic derivation + and validation." Electrochemica Acta 339 (2020): 135862 + + Parameters + ---------- + sto : :class:`pybamm.Symbol` + Stochiometry of material (li-fraction) + + """ + + # LiNiCo from Ecker, Kabitz, Laresgoiti et al. + # Analytical fit (WebPlotDigitizer + gnuplot) + # Parameter m modified by Simon O'Kane to improve fit + a = -2.35211 + c = 0.0747061 + d = 31.886 + e = 0.0219921 + g = 0.640243 + h = 5.48623 + i = 0.439245 + j = 3.82383 + k = 4.12167 + m = 0.176187 + n = 0.0542123 + o = 18.2919 + p = 0.762272 + q = 4.23285 + r = -6.34984 + s = 2.66395 + t = 0.174352 + + u_eq = ( + a * sto + - c * tanh(d * (sto - e)) + - r * tanh(s * (sto - t)) + - g * tanh(h * (sto - i)) + - j * tanh(k * (sto - m)) + - n * tanh(o * (sto - p)) + + q + ) + return u_eq + +def nco_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_max, T): + """ + Exchange-current density for Butler-Volmer reactions between NCO and LiPF6 in + EC:DMC [1, 2, 3]. + + References + ---------- + .. [1] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of + a lithium-ion battery i. determination of parameters." Journal of the + Electrochemical Society 162.9 (2015): A1836-A1848. + .. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of + a lithium-ion battery ii. model validation." Journal of The Electrochemical + Society 162.9 (2015): A1849-A1857. + .. [3] Richardson, Giles, et. al. "Generalised single particle models for + high-rate operation of graded lithium-ion electrodes: Systematic derivation + and validation." Electrochemica Acta 339 (2020): 135862 + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + + k_ref = 3.01e-11 + + # multiply by Faraday's constant to get correct units + m_ref = constants.F * k_ref # (A/m2)(mol/m3)**1.5 - includes ref concentrations + + E_r = 4.36e4 + arrhenius = exp(-E_r / (constants.R * T)) * exp(E_r / (constants.R * 296.15)) + + return ( + m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + ) + +def electrolyte_diffusivity_Ecker2015(c_e, T): + """ + Diffusivity of LiPF6 in EC:DMC as a function of ion concentration [1, 2, 3]. + + References + ---------- + .. [1] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of + a lithium-ion battery i. determination of parameters." Journal of the + Electrochemical Society 162.9 (2015): A1836-A1848. + .. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of + a lithium-ion battery ii. model validation." Journal of The Electrochemical + Society 162.9 (2015): A1849-A1857. + .. [3] Richardson, Giles, et. al. "Generalised single particle models for + high-rate operation of graded lithium-ion electrodes: Systematic derivation + and validation." Electrochemica Acta 339 (2020): 135862 + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + # The diffusivity epends on the electrolyte conductivity + inputs = {"Electrolyte concentration [mol.m-3]": c_e, "Temperature [K]": T} + sigma_e = pybamm.FunctionParameter("Electrolyte conductivity [S.m-1]", inputs) + + D_c_e = (constants.k_b / (constants.F * constants.q_e)) * sigma_e * T / c_e + + return D_c_e + +def electrolyte_conductivity_Ecker2015(c_e, T): + """ + Conductivity of LiPF6 in EC:DMC as a function of ion concentration [1, 2, 3]. + + References + ---------- + .. [1] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of + a lithium-ion battery i. determination of parameters." Journal of the + Electrochemical Society 162.9 (2015): A1836-A1848. + .. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of + a lithium-ion battery ii. model validation." Journal of The Electrochemical + Society 162.9 (2015): A1849-A1857. + .. [3] Richardson, Giles, et. al. "Generalised single particle models for + high-rate operation of graded lithium-ion electrodes: Systematic derivation + and validation." Electrochemica Acta 339 (2020): 135862 + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + # mol/m^3 to mol/l + cm = 1e-3 * c_e + + # value at T = 296K + sigma_e_296 = 0.2667 * cm**3 - 1.2983 * cm**2 + 1.7919 * cm + 0.1726 + + # add temperature dependence + E_k_e = 1.71e4 + C = 296 * exp(E_k_e / (constants.R * 296)) + sigma_e = C * sigma_e_296 * exp(-E_k_e / (constants.R * T)) / T + + return sigma_e + +def get_parameter_values(): + return {'1 + dlnf/dlnc': 1.0, + 'Ambient temperature [K]': 298.15, + 'Bulk solvent concentration [mol.m-3]': 2636.0, + 'Cation transference number': 0.26, + 'Cell cooling surface area [m2]': 0.0172, + 'Cell volume [m3]': 1.52e-06, + 'Current function [A]': 0.15652, + 'EC diffusivity [m2.s-1]': 2e-18, + 'EC initial concentration in electrolyte [mol.m-3]': 4541.0, + 'Edge heat transfer coefficient [W.m-2.K-1]': 10.0, + 'Electrode height [m]': 0.101, + 'Electrode width [m]': 0.085, + 'Electrolyte conductivity [S.m-1]': electrolyte_conductivity_Ecker2015, + 'Electrolyte diffusivity [m2.s-1]': electrolyte_diffusivity_Ecker2015, + 'Initial concentration in electrolyte [mol.m-3]': 1000.0, + 'Initial concentration in negative electrode [mol.m-3]': 26120.05, + 'Initial concentration in positive electrode [mol.m-3]': 12630.8, + 'Initial inner SEI thickness [m]': 2.5e-09, + 'Initial outer SEI thickness [m]': 2.5e-09, + 'Initial temperature [K]': 298.15, + 'Inner SEI electron conductivity [S.m-1]': 8.95e-14, + 'Inner SEI lithium interstitial diffusivity [m2.s-1]': 1e-20, + 'Inner SEI open-circuit potential [V]': 0.1, + 'Inner SEI partial molar volume [m3.mol-1]': 9.585e-05, + 'Inner SEI reaction proportion': 0.5, + 'Lithium interstitial reference concentration [mol.m-3]': 15.0, + 'Lower voltage cut-off [V]': 2.5, + 'Maximum concentration in negative electrode [mol.m-3]': 31920.0, + 'Maximum concentration in positive electrode [mol.m-3]': 48580.0, + 'Measured negative electrode OCP [V]': ('graphite_ocp_Ecker2015, + ([array([0.00151515, 0.00606061, 0.01060606, 0.01666667, 0.02121212, + 0.02272727, 0.03030303, 0.03939394, 0.04545455, 0.0530303 , + 0.06666667, 0.07878788, 0.08939394, 0.10151515, 0.12727273, + 0.14242424, 0.15909091, 0.17727273, 0.19393939, 0.21363636, + 0.23333333, 0.25757576, 0.27878788, 0.3030303 , 0.32878788, + 0.35151515, 0.37121212, 0.39242424, 0.56818182, 0.58787879, + 0.60606061, 0.62727273, 0.65454545, 0.67424242, 0.69393939, + 0.71818182, 0.73939394, 0.89090909, 0.95606061, 0.97727273, + 1. ])], + array([1.43251534, 0.86196319, 0.79141104, 0.6595092 , 0.5797546 , + 0.52453988, 0.47546012, 0.41411043, 0.36809816, 0.33128834, + 0.28220859, 0.24846626, 0.22392638, 0.2208589 , 0.21165644, + 0.20245399, 0.1993865 , 0.19325153, 0.18404908, 0.1809816 , + 0.17177914, 0.16564417, 0.16257669, 0.15337423, 0.14110429, + 0.13496933, 0.13190184, 0.12883436, 0.12576687, 0.12269939, + 0.11656442, 0.10122699, 0.09509202, 0.09509202, 0.08895706, + 0.08895706, 0.08588957, 0.08282209, 0.08272209, 0.0797546 , + 0.07055215]))), + 'Measured negative electrode diffusivity [m2.s-1]': ('measured_graphite_diffusivity_Ecker2015, + ([array([0.04291659, 0.08025338, 0.12014957, 0.15796121, 0.19575227, + 0.23576503, 0.27144412, 0.31002889, 0.34841653, 0.38667045, + 0.42641578, 0.46418627, 0.50187791, 0.54121182, 0.57667491, + 0.61480369, 0.65458159, 0.76813993, 0.80894297, 0.88230341, + 0.92208646, 0.96075009, 0.99763602])], + array([2.53189836e-13, 4.43829239e-14, 3.19474263e-14, 2.60779630e-14, + 2.25590858e-14, 1.16865022e-14, 1.23869273e-14, 2.02919545e-14, + 3.26047164e-15, 7.64015664e-16, 8.41774737e-16, 7.71709353e-16, + 8.83792155e-16, 3.10917132e-15, 6.06218467e-15, 3.59593721e-14, + 2.03230938e-15, 7.80266422e-16, 7.72894292e-16, 9.65829674e-16, + 9.56699959e-16, 1.25457764e-15, 1.39568471e-14]))), + 'Measured positive electrode OCP [V]': ('nco_ocp_Ecker2015, + ([array([0.00106608, 0.04127378, 0.0653984 , 0.08722544, 0.11154152, + 0.13547468, 0.15940784, 0.18174545, 0.2056786 , 0.22801622, + 0.2511516 , 0.27508476, 0.29822014, 0.32215329, 0.34528868, + 0.36922183, 0.39395276, 0.41469483, 0.44022353, 0.46176337, + 0.4864943 , 0.50883191, 0.53276506, 0.55669822, 0.57823806, + 0.59818236, 0.64844198, 0.67237514, 0.69710607, 0.71944368, + 0.74337683, 0.76491667, 0.78805206, 0.81278299, 0.8351206 , + 0.85905375, 0.88218914, 0.90532452, 0.93005545, 0.95159529, + 0.9683485 , 0.98270839, 0.9994616 ])], + array([4.58426321, 4.54243734, 4.52965007, 4.52332475, 4.49893236, + 4.46985871, 4.42953849, 4.3892071 , 4.34213893, 4.29955823, + 4.2547338 , 4.21666289, 4.1785864 , 4.14726344, 4.11143626, + 4.08236261, 4.05554386, 4.03094651, 4.00638266, 3.98404021, + 3.96846803, 3.9528791 , 3.94179997, 3.9239729 , 3.91962497, + 3.91301656, 3.91111887, 3.91128632, 3.89796345, 3.88237453, + 3.86004882, 3.81746254, 3.78838331, 3.75931524, 3.73247975, + 3.70790473, 3.68107481, 3.64974626, 3.61168094, 3.57809192, + 3.55796529, 3.54232055, 3.51994462]))), + 'Measured positive electrode diffusivity [m2.s-1]': ('measured_nco_diffusivity_Ecker2015, + ([array([0.13943218, 0.2 , 0.26182965, 0.32239748, 0.38675079, + 0.44605678, 0.50788644, 0.56845426, 0.63154574, 0.69337539, + 0.75268139, 0.81577287, 0.87507886, 0.94069401, 1. ])], + array([1.82565403e-13, 3.32985856e-13, 3.08012285e-13, 2.63339203e-13, + 1.98119699e-13, 1.41887887e-13, 7.20118242e-14, 2.85770870e-14, + 4.54160840e-15, 5.47944475e-14, 2.02968867e-13, 1.58828651e-13, + 1.34460920e-13, 2.05450533e-14, 5.44629298e-15]))), + 'Negative current collector conductivity [S.m-1]': 58411000.0, + 'Negative current collector density [kg.m-3]': 8933.0, + 'Negative current collector specific heat capacity [J.kg-1.K-1]': 385.0, + 'Negative current collector surface heat transfer coefficient [W.m-2.K-1]': 10.0, + 'Negative current collector thermal conductivity [W.m-1.K-1]': 398.0, + 'Negative current collector thickness [m]': 1.4e-05, + 'Negative electrode Bruggeman coefficient (electrode)': 0.0, + 'Negative electrode Bruggeman coefficient (electrolyte)': 1.6372789338386007, + 'Negative electrode OCP [V]': graphite_ocp_Ecker2015_function, + 'Negative electrode OCP entropic change [V.K-1]': 0.0, + 'Negative electrode active material volume fraction': 0.372403, + 'Negative electrode cation signed stoichiometry': -1.0, + 'Negative electrode conductivity [S.m-1]': 14.0, + 'Negative electrode density [kg.m-3]': 1555.0, + 'Negative electrode diffusivity [m2.s-1]': graphite_diffusivity_Ecker2015, + 'Negative electrode electrons in reaction': 1.0, + 'Negative electrode exchange-current density [A.m-2]': graphite_electrolyte_exchange_current_density_Ecker2015, + 'Negative electrode porosity': 0.329, + 'Negative electrode reaction-driven LAM factor [m3.mol-1]': 0.0, + 'Negative electrode specific heat capacity [J.kg-1.K-1]': 1437.0, + 'Negative electrode thermal conductivity [W.m-1.K-1]': 1.58, + 'Negative electrode thickness [m]': 7.4e-05, + 'Negative particle radius [m]': 1.37e-05, + 'Negative tab centre y-coordinate [m]': 0.0045, + 'Negative tab centre z-coordinate [m]': 0.101, + 'Negative tab heat transfer coefficient [W.m-2.K-1]': 10.0, + 'Negative tab width [m]': 0.007, + 'Nominal cell capacity [A.h]': 0.15625, + 'Number of cells connected in series to make a battery': 1.0, + 'Number of electrodes connected in parallel to make a cell': 1.0, + 'Outer SEI open-circuit potential [V]': 0.8, + 'Outer SEI partial molar volume [m3.mol-1]': 9.585e-05, + 'Outer SEI solvent diffusivity [m2.s-1]': 2.5000000000000002e-22, + 'Positive current collector conductivity [S.m-1]': 36914000.0, + 'Positive current collector density [kg.m-3]': 2702.0, + 'Positive current collector specific heat capacity [J.kg-1.K-1]': 903.0, + 'Positive current collector surface heat transfer coefficient [W.m-2.K-1]': 10.0, + 'Positive current collector thermal conductivity [W.m-1.K-1]': 238.0, + 'Positive current collector thickness [m]': 1.5e-05, + 'Positive electrode Bruggeman coefficient (electrode)': 0.0, + 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5442267190786427, + 'Positive electrode OCP [V]': nco_ocp_Ecker2015_function, + 'Positive electrode OCP entropic change [V.K-1]': 0.0, + 'Positive electrode active material volume fraction': 0.40832, + 'Positive electrode cation signed stoichiometry': -1.0, + 'Positive electrode conductivity [S.m-1]': 68.1, + 'Positive electrode density [kg.m-3]': 2895.0, + 'Positive electrode diffusivity [m2.s-1]': nco_diffusivity_Ecker2015, + 'Positive electrode electrons in reaction': 1.0, + 'Positive electrode exchange-current density [A.m-2]': nco_electrolyte_exchange_current_density_Ecker2015, + 'Positive electrode porosity': 0.296, + 'Positive electrode reaction-driven LAM factor [m3.mol-1]': 0.0, + 'Positive electrode specific heat capacity [J.kg-1.K-1]': 1270.0, + 'Positive electrode thermal conductivity [W.m-1.K-1]': 1.04, + 'Positive electrode thickness [m]': 5.4e-05, + 'Positive particle radius [m]': 6.5e-06, + 'Positive tab centre y-coordinate [m]': 0.0309, + 'Positive tab centre z-coordinate [m]': 0.101, + 'Positive tab heat transfer coefficient [W.m-2.K-1]': 10.0, + 'Positive tab width [m]': 0.0069, + 'Ratio of lithium moles to SEI moles': 2.0, + 'Reference temperature [K]': 296.15, + 'SEI growth activation energy [J.mol-1]': 0.0, + 'SEI kinetic rate constant [m.s-1]': 1e-12, + 'SEI open-circuit potential [V]': 0.4, + 'SEI reaction exchange current density [A.m-2]': 1.5e-07, + 'SEI resistivity [Ohm.m]': 200000.0, + 'Separator Bruggeman coefficient (electrolyte)': 1.9804586773134945, + 'Separator density [kg.m-3]': 1017.0, + 'Separator porosity': 0.508, + 'Separator specific heat capacity [J.kg-1.K-1]': 1978.0, + 'Separator thermal conductivity [W.m-1.K-1]': 0.34, + 'Separator thickness [m]': 2e-05, + 'Total heat transfer coefficient [W.m-2.K-1]': 10.0, + 'Typical current [A]': 0.15652, + 'Typical electrolyte concentration [mol.m-3]': 1000.0, + 'Upper voltage cut-off [V]': 4.2} \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Marquis2019.py b/pybamm/input/parameters/lithium_ion/Marquis2019.py new file mode 100644 index 0000000000..bdb684ac4c --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/Marquis2019.py @@ -0,0 +1,429 @@ +def graphite_mcmb2528_diffusivity_Dualfoil1998(sto, T): + """ + Graphite MCMB 2528 diffusivity as a function of stochiometry, in this case the + diffusivity is taken to be a constant. The value is taken from Dualfoil [1]. + + References + ---------- + .. [1] http://www.cchem.berkeley.edu/jsngrp/fortran.html + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + D_ref = 3.9 * 10 ** (-14) + E_D_s = 42770 + arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + + return D_ref * arrhenius + +def graphite_mcmb2528_ocp_Dualfoil1998(sto): + """ + Graphite MCMB 2528 Open Circuit Potential (OCP) as a function of the + stochiometry. The fit is taken from Dualfoil [1]. Dualfoil states that the data + was measured by Chris Bogatu at Telcordia and PolyStor materials, 2000. However, + we could not find any other records of this measurment. + + References + ---------- + .. [1] http://www.cchem.berkeley.edu/jsngrp/fortran.html + """ + + u_eq = ( + 0.194 + + 1.5 * exp(-120.0 * sto) + + 0.0351 * tanh((sto - 0.286) / 0.083) + - 0.0045 * tanh((sto - 0.849) / 0.119) + - 0.035 * tanh((sto - 0.9233) / 0.05) + - 0.0147 * tanh((sto - 0.5) / 0.034) + - 0.102 * tanh((sto - 0.194) / 0.142) + - 0.022 * tanh((sto - 0.9) / 0.0164) + - 0.011 * tanh((sto - 0.124) / 0.0226) + + 0.0155 * tanh((sto - 0.105) / 0.029) + ) + + return u_eq + +def graphite_electrolyte_exchange_current_density_Dualfoil1998( + c_e, c_s_surf, c_s_max, T +): + """ + Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in + EC:DMC. + + References + ---------- + .. [2] http://www.cchem.berkeley.edu/jsngrp/fortran.html + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + m_ref = 2 * 10 ** (-5) # (A/m2)(mol/m3)**1.5 - includes ref concentrations + E_r = 37480 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + return ( + m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + ) + +def graphite_entropic_change_Moura2016(sto, c_s_max): + """ + Graphite entropic change in open circuit potential (OCP) at a temperature of + 298.15K as a function of the stochiometry taken from Scott Moura's FastDFN code + [1]. + + References + ---------- + .. [1] https://github.com/scott-moura/fastDFN + + Parameters + ---------- + sto : :class:`pybamm.Symbol` + Stochiometry of material (li-fraction) + + """ + du_dT = ( + -1.5 * (120.0 / c_s_max) * exp(-120 * sto) + + (0.0351 / (0.083 * c_s_max)) * ((cosh((sto - 0.286) / 0.083)) ** (-2)) + - (0.0045 / (0.119 * c_s_max)) * ((cosh((sto - 0.849) / 0.119)) ** (-2)) + - (0.035 / (0.05 * c_s_max)) * ((cosh((sto - 0.9233) / 0.05)) ** (-2)) + - (0.0147 / (0.034 * c_s_max)) * ((cosh((sto - 0.5) / 0.034)) ** (-2)) + - (0.102 / (0.142 * c_s_max)) * ((cosh((sto - 0.194) / 0.142)) ** (-2)) + - (0.022 / (0.0164 * c_s_max)) * ((cosh((sto - 0.9) / 0.0164)) ** (-2)) + - (0.011 / (0.0226 * c_s_max)) * ((cosh((sto - 0.124) / 0.0226)) ** (-2)) + + (0.0155 / (0.029 * c_s_max)) * ((cosh((sto - 0.105) / 0.029)) ** (-2)) + ) + + return du_dT + +def lico2_diffusivity_Dualfoil1998(sto, T): + """ + LiCo2 diffusivity as a function of stochiometry, in this case the + diffusivity is taken to be a constant. The value is taken from Dualfoil [1]. + + References + ---------- + .. [1] http://www.cchem.berkeley.edu/jsngrp/fortran.html + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + D_ref = 1 * 10 ** (-13) + E_D_s = 18550 + arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + + return D_ref * arrhenius + +def lico2_ocp_Dualfoil1998(sto): + """ + Lithium Cobalt Oxide (LiCO2) Open Circuit Potential (OCP) as a a function of the + stochiometry. The fit is taken from Dualfoil [1]. Dualfoil states that the data + was measured by Oscar Garcia 2001 using Quallion electrodes for 0.5 < sto < 0.99 + and by Marc Doyle for sto<0.4 (for unstated electrodes). We could not find any + other records of the Garcia measurements. Doyles fits can be found in his + thesis [2] but we could not find any other record of his measurments. + + References + ---------- + .. [1] http://www.cchem.berkeley.edu/jsngrp/fortran.html + .. [2] CM Doyle. Design and simulation of lithium rechargeable batteries, + 1995. + + Parameters + ---------- + sto : :class:`pybamm.Symbol` + Stochiometry of material (li-fraction) + + """ + + stretch = 1.062 + sto = stretch * sto + + u_eq = ( + 2.16216 + + 0.07645 * tanh(30.834 - 54.4806 * sto) + + 2.1581 * tanh(52.294 - 50.294 * sto) + - 0.14169 * tanh(11.0923 - 19.8543 * sto) + + 0.2051 * tanh(1.4684 - 5.4888 * sto) + + 0.2531 * tanh((-sto + 0.56478) / 0.1316) + - 0.02167 * tanh((sto - 0.525) / 0.006) + ) + + return u_eq + +def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_max, T): + """ + Exchange-current density for Butler-Volmer reactions between lico2 and LiPF6 in + EC:DMC. + + References + ---------- + .. [2] http://www.cchem.berkeley.edu/jsngrp/fortran.html + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + m_ref = 6 * 10 ** (-7) # (A/m2)(mol/m3)**1.5 - includes ref concentrations + E_r = 39570 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + return ( + m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + ) + +def lico2_entropic_change_Moura2016(sto, c_s_max): + """ + Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at + a temperature of 298.15K as a function of the stochiometry. The fit is taken + from Scott Moura's FastDFN code [1]. + + References + ---------- + .. [1] https://github.com/scott-moura/fastDFN + + Parameters + ---------- + sto : :class:`pybamm.Symbol` + Stochiometry of material (li-fraction) + """ + # Since the equation for LiCo2 from this ref. has the stretch factor, + # should this too? If not, the "bumps" in the OCV don't line up. + stretch = 1.062 + sto = stretch * sto + + du_dT = ( + 0.07645 * (-54.4806 / c_s_max) * ((1.0 / cosh(30.834 - 54.4806 * sto)) ** 2) + + 2.1581 * (-50.294 / c_s_max) * ((cosh(52.294 - 50.294 * sto)) ** (-2)) + + 0.14169 * (19.854 / c_s_max) * ((cosh(11.0923 - 19.8543 * sto)) ** (-2)) + - 0.2051 * (5.4888 / c_s_max) * ((cosh(1.4684 - 5.4888 * sto)) ** (-2)) + - (0.2531 / 0.1316 / c_s_max) * ((cosh((-sto + 0.56478) / 0.1316)) ** (-2)) + - (0.02167 / 0.006 / c_s_max) * ((cosh((sto - 0.525) / 0.006)) ** (-2)) + ) + + return du_dT + +def electrolyte_diffusivity_Capiglia1999(c_e, T): + """ + Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. The original data + is from [1]. The fit from Dualfoil [2]. + + References + ---------- + .. [1] C Capiglia et al. 7Li and 19F diffusion coefficients and thermal + properties of non-aqueous electrolyte solutions for rechargeable lithium batteries. + Journal of power sources 81 (1999): 859-862. + .. [2] http://www.cchem.berkeley.edu/jsngrp/fortran.html + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + D_c_e = 5.34e-10 * exp(-0.65 * c_e / 1000) + E_D_e = 37040 + arrhenius = exp(E_D_e / constants.R * (1 / 298.15 - 1 / T)) + + return D_c_e * arrhenius + +def electrolyte_conductivity_Capiglia1999(c_e, T): + """ + Conductivity of LiPF6 in EC:DMC as a function of ion concentration. The original + data is from [1]. The fit is from Dualfoil [2]. + + References + ---------- + .. [1] C Capiglia et al. 7Li and 19F diffusion coefficients and thermal + properties of non-aqueous electrolyte solutions for rechargeable lithium batteries. + Journal of power sources 81 (1999): 859-862. + .. [2] http://www.cchem.berkeley.edu/jsngrp/fortran.html + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + sigma_e = ( + 0.0911 + + 1.9101 * (c_e / 1000) + - 1.052 * (c_e / 1000) ** 2 + + 0.1554 * (c_e / 1000) ** 3 + ) + + E_k_e = 34700 + arrhenius = exp(E_k_e / constants.R * (1 / 298.15 - 1 / T)) + + return sigma_e * arrhenius + +def get_parameter_values(): + return {'1 + dlnf/dlnc': 1.0, + 'Ambient temperature [K]': 298.15, + 'Bulk solvent concentration [mol.m-3]': 2636.0, + 'Cation transference number': 0.4, + 'Cell cooling surface area [m2]': 0.0569, + 'Cell volume [m3]': 7.8e-06, + 'Current function [A]': 0.680616, + 'EC diffusivity [m2.s-1]': 2e-18, + 'EC initial concentration in electrolyte [mol.m-3]': 4541.0, + 'Edge heat transfer coefficient [W.m-2.K-1]': 0.3, + 'Electrode height [m]': 0.137, + 'Electrode width [m]': 0.207, + 'Electrolyte conductivity [S.m-1]': electrolyte_conductivity_Capiglia1999, + 'Electrolyte diffusivity [m2.s-1]': electrolyte_diffusivity_Capiglia1999, + 'Initial concentration in electrolyte [mol.m-3]': 1000.0, + 'Initial concentration in negative electrode [mol.m-3]': 19986.609595075, + 'Initial concentration in positive electrode [mol.m-3]': 30730.7554385565, + 'Initial inner SEI thickness [m]': 2.5e-09, + 'Initial outer SEI thickness [m]': 2.5e-09, + 'Initial temperature [K]': 298.15, + 'Inner SEI electron conductivity [S.m-1]': 8.95e-14, + 'Inner SEI lithium interstitial diffusivity [m2.s-1]': 1e-20, + 'Inner SEI open-circuit potential [V]': 0.1, + 'Inner SEI partial molar volume [m3.mol-1]': 9.585e-05, + 'Inner SEI reaction proportion': 0.5, + 'Lithium interstitial reference concentration [mol.m-3]': 15.0, + 'Lower voltage cut-off [V]': 3.105, + 'Maximum concentration in negative electrode [mol.m-3]': 24983.2619938437, + 'Maximum concentration in positive electrode [mol.m-3]': 51217.9257309275, + 'Negative current collector conductivity [S.m-1]': 59600000.0, + 'Negative current collector density [kg.m-3]': 8954.0, + 'Negative current collector specific heat capacity [J.kg-1.K-1]': 385.0, + 'Negative current collector surface heat transfer coefficient [W.m-2.K-1]': 0.0, + 'Negative current collector thermal conductivity [W.m-1.K-1]': 401.0, + 'Negative current collector thickness [m]': 2.5e-05, + 'Negative electrode Bruggeman coefficient (electrode)': 1.5, + 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5, + 'Negative electrode OCP [V]': graphite_mcmb2528_ocp_Dualfoil1998, + 'Negative electrode OCP entropic change [V.K-1]': graphite_entropic_change_Moura2016, + 'Negative electrode active material volume fraction': 0.6, + 'Negative electrode cation signed stoichiometry': -1.0, + 'Negative electrode charge transfer coefficient': 0.5, + 'Negative electrode conductivity [S.m-1]': 100.0, + 'Negative electrode density [kg.m-3]': 1657.0, + 'Negative electrode diffusivity [m2.s-1]': graphite_mcmb2528_diffusivity_Dualfoil1998, + 'Negative electrode double-layer capacity [F.m-2]': 0.2, + 'Negative electrode electrons in reaction': 1.0, + 'Negative electrode exchange-current density [A.m-2]': graphite_electrolyte_exchange_current_density_Dualfoil1998, + 'Negative electrode porosity': 0.3, + 'Negative electrode reaction-driven LAM factor [m3.mol-1]': 0.0, + 'Negative electrode specific heat capacity [J.kg-1.K-1]': 700.0, + 'Negative electrode thermal conductivity [W.m-1.K-1]': 1.7, + 'Negative electrode thickness [m]': 0.0001, + 'Negative particle radius [m]': 1e-05, + 'Negative tab centre y-coordinate [m]': 0.06, + 'Negative tab centre z-coordinate [m]': 0.137, + 'Negative tab heat transfer coefficient [W.m-2.K-1]': 10.0, + 'Negative tab width [m]': 0.04, + 'Nominal cell capacity [A.h]': 0.680616, + 'Number of cells connected in series to make a battery': 1.0, + 'Number of electrodes connected in parallel to make a cell': 1.0, + 'Outer SEI open-circuit potential [V]': 0.8, + 'Outer SEI partial molar volume [m3.mol-1]': 9.585e-05, + 'Outer SEI solvent diffusivity [m2.s-1]': 2.5000000000000002e-22, + 'Positive current collector conductivity [S.m-1]': 35500000.0, + 'Positive current collector density [kg.m-3]': 2707.0, + 'Positive current collector specific heat capacity [J.kg-1.K-1]': 897.0, + 'Positive current collector surface heat transfer coefficient [W.m-2.K-1]': 0.0, + 'Positive current collector thermal conductivity [W.m-1.K-1]': 237.0, + 'Positive current collector thickness [m]': 2.5e-05, + 'Positive electrode Bruggeman coefficient (electrode)': 1.5, + 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5, + 'Positive electrode OCP [V]': lico2_ocp_Dualfoil1998, + 'Positive electrode OCP entropic change [V.K-1]': lico2_entropic_change_Moura2016, + 'Positive electrode active material volume fraction': 0.5, + 'Positive electrode cation signed stoichiometry': -1.0, + 'Positive electrode charge transfer coefficient': 0.5, + 'Positive electrode conductivity [S.m-1]': 10.0, + 'Positive electrode density [kg.m-3]': 3262.0, + 'Positive electrode diffusivity [m2.s-1]': lico2_diffusivity_Dualfoil1998, + 'Positive electrode double-layer capacity [F.m-2]': 0.2, + 'Positive electrode electrons in reaction': 1.0, + 'Positive electrode exchange-current density [A.m-2]': lico2_electrolyte_exchange_current_density_Dualfoil1998, + 'Positive electrode porosity': 0.3, + 'Positive electrode reaction-driven LAM factor [m3.mol-1]': 0.0, + 'Positive electrode specific heat capacity [J.kg-1.K-1]': 700.0, + 'Positive electrode thermal conductivity [W.m-1.K-1]': 2.1, + 'Positive electrode thickness [m]': 0.0001, + 'Positive particle radius [m]': 1e-05, + 'Positive tab centre y-coordinate [m]': 0.147, + 'Positive tab centre z-coordinate [m]': 0.137, + 'Positive tab heat transfer coefficient [W.m-2.K-1]': 10.0, + 'Positive tab width [m]': 0.04, + 'Ratio of lithium moles to SEI moles': 2.0, + 'Reference temperature [K]': 298.15, + 'SEI growth activation energy [J.mol-1]': 0.0, + 'SEI kinetic rate constant [m.s-1]': 1e-12, + 'SEI open-circuit potential [V]': 0.4, + 'SEI reaction exchange current density [A.m-2]': 1.5e-07, + 'SEI resistivity [Ohm.m]': 200000.0, + 'Separator Bruggeman coefficient (electrolyte)': 1.5, + 'Separator density [kg.m-3]': 397.0, + 'Separator porosity': 1.0, + 'Separator specific heat capacity [J.kg-1.K-1]': 700.0, + 'Separator thermal conductivity [W.m-1.K-1]': 0.16, + 'Separator thickness [m]': 2.5e-05, + 'Total heat transfer coefficient [W.m-2.K-1]': 10.0, + 'Typical current [A]': 0.680616, + 'Typical electrolyte concentration [mol.m-3]': 1000.0, + 'Upper voltage cut-off [V]': 4.1} \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Mohtat2020.py b/pybamm/input/parameters/lithium_ion/Mohtat2020.py new file mode 100644 index 0000000000..a82ae8869b --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/Mohtat2020.py @@ -0,0 +1,433 @@ +def graphite_diffusivity_PeymanMPM(sto, T): + """ + Graphite diffusivity as a function of stochiometry, in this case the + diffusivity is taken to be a constant. The value is taken from Peyman MPM. + + References + ---------- + .. [1] http://www.cchem.berkeley.edu/jsngrp/fortran.html + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + D_ref = 5.0 * 10 ** (-15) + E_D_s = 42770 + arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + + return D_ref * arrhenius + + +def graphite_ocp_PeymanMPM(sto): + """ + Graphite Open Circuit Potential (OCP) as a function of the + stochiometry. The fit is taken from Peyman MPM [1]. + + References + ---------- + .. [1] Peyman Mohtat et al, MPM (to be submitted) + """ + + u_eq = ( + 0.063 + + 0.8 * pybamm.exp(-75 * (sto + 0.001)) + - 0.0120 * pybamm.tanh((sto - 0.127) / 0.016) + - 0.0118 * pybamm.tanh((sto - 0.155) / 0.016) + - 0.0035 * pybamm.tanh((sto - 0.220) / 0.020) + - 0.0095 * pybamm.tanh((sto - 0.190) / 0.013) + - 0.0145 * pybamm.tanh((sto - 0.490) / 0.020) + - 0.0800 * pybamm.tanh((sto - 1.030) / 0.055) + ) + + return u_eq + + +def graphite_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_max, T): + """ + Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in + EC:DMC. + Check the unit of Reaction rate constant k0 is from Peyman MPM. + + References + ---------- + .. [2] http://www.cchem.berkeley.edu/jsngrp/fortran.html + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + m_ref = 1.061 * 10 ** (-6) # unit has been converted + # units are (A/m2)(mol/m3)**1.5 - includes ref concentrations + E_r = 37480 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + return ( + m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + ) + + +def graphite_entropic_change_PeymanMPM(sto, c_s_max): + """ + Graphite entropic change in open circuit potential (OCP) at a temperature of + 298.15K as a function of the stochiometry taken from [1] + + References + ---------- + .. [1] K.E. Thomas, J. Newman, "Heats of mixing and entropy in porous insertion + electrode", J. of Power Sources 119 (2003) 844-849 + + Parameters + ---------- + sto : :class:`pybamm.Symbol` + Stochiometry of material (li-fraction) + + """ + + du_dT = 10 ** (-3) * ( + 0.28 + - 1.56 * sto + - 8.92 * sto ** (2) + + 57.21 * sto ** (3) + - 110.7 * sto ** (4) + + 90.71 * sto ** (5) + - 27.14 * sto ** (6) + ) + + return du_dT + + +def NMC_diffusivity_PeymanMPM(sto, T): + """ + NMC diffusivity as a function of stochiometry, in this case the + diffusivity is taken to be a constant. The value is taken from Peyman MPM. + + References + ---------- + .. [1] http://www.cchem.berkeley.edu/jsngrp/fortran.html + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + D_ref = 8 * 10 ** (-15) + E_D_s = 18550 + arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + + return D_ref * arrhenius + + +def NMC_ocp_PeymanMPM(sto): + """ + Nickel Managanese Cobalt Oxide (NMC) Open Circuit Potential (OCP) as a + function of the stochiometry. The fit is taken from Peyman MPM. + + References + ---------- + Peyman MPM manuscript (to be submitted) + + Parameters + ---------- + sto : :class:`pybamm.Symbol` + Stochiometry of material (li-fraction) + + """ + + u_eq = ( + 4.3452 + - 1.6518 * sto + + 1.6225 * (sto**2) + - 2.0843 * (sto**3) + + 3.5146 * (sto**4) + - 2.2166 * (sto**5) + - 0.5623e-4 * pybamm.exp(109.451 * sto - 100.006) + ) + + return u_eq + + +def NMC_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_max, T): + """ + Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in + EC:DMC. + + References + ---------- + .. Peyman MPM manuscript (to be submitted) + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + m_ref = 4.824 * 10 ** (-6) # (A/m2)(mol/m3)**1.5 - includes ref concentrations + E_r = 39570 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + return ( + m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + ) + + +def NMC_entropic_change_PeymanMPM(sto, c_s_max): + """ + Nickel Manganese Cobalt (NMC) entropic change in open circuit potential (OCP) at + a temperature of 298.15K as a function of the OCP. The fit is taken from [1]. + + References + ---------- + .. [1] W. Le, I. Belharouak, D. Vissers, K. Amine, "In situ thermal study of + li1+ x [ni1/ 3co1/ 3mn1/ 3] 1- x o2 using isothermal micro-clorimetric + techniques", + J. of the Electrochemical Society 153 (11) (2006) A2147–A2151. + + Parameters + ---------- + sto : :class:`pybamm.Symbol` + Stochiometry of material (li-fraction) + + """ + + # Since the equation uses the OCP at each stoichiometry as input, + # we need OCP function here + + u_eq = ( + 4.3452 + - 1.6518 * sto + + 1.6225 * sto**2 + - 2.0843 * sto**3 + + 3.5146 * sto**4 + - 0.5623 * 10 ** (-4) * pybamm.exp(109.451 * sto - 100.006) + ) + + du_dT = ( + -800 + 779 * u_eq - 284 * u_eq**2 + 46 * u_eq**3 - 2.8 * u_eq**4 + ) * 10 ** (-3) + + return du_dT + + +def electrolyte_diffusivity_PeymanMPM(c_e, T): + """ + Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. The original data + is from [1]. The fit from Dualfoil [2]. + + References + ---------- + .. [1] C Capiglia et al. 7Li and 19F diffusion coefficients and thermal + properties of non-aqueous electrolyte solutions for rechargeable lithium batteries. + Journal of power sources 81 (1999): 859-862. + .. [2] http://www.cchem.berkeley.edu/jsngrp/fortran.html + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte diffusivity + """ + + D_c_e = 5.35 * 10 ** (-10) + E_D_e = 37040 + arrhenius = exp(E_D_e / constants.R * (1 / 298.15 - 1 / T)) + + return D_c_e * arrhenius + + +def electrolyte_conductivity_PeymanMPM(c_e, T): + """ + Conductivity of LiPF6 in EC:DMC as a function of ion concentration. The original + data is from [1]. The fit is from Dualfoil [2]. + + References + ---------- + .. [1] C Capiglia et al. 7Li and 19F diffusion coefficients and thermal + properties of non-aqueous electrolyte solutions for rechargeable lithium batteries. + Journal of power sources 81 (1999): 859-862. + .. [2] http://www.cchem.berkeley.edu/jsngrp/fortran.html + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte conductivity + """ + + sigma_e = 1.3 + E_k_e = 34700 + arrhenius = exp(E_k_e / constants.R * (1 / 298.15 - 1 / T)) + + return sigma_e * arrhenius + + +def get_parameter_values(): + return { + "1 + dlnf/dlnc": 1.0, + "Ambient temperature [K]": 298.15, + "Bulk solvent concentration [mol.m-3]": 2636.0, + "Cation transference number": 0.38, + "Cell cooling surface area [m2]": 0.41, + "Cell volume [m3]": 3.92e-05, + "Current function [A]": 5.0, + "EC diffusivity [m2.s-1]": 2e-18, + "EC initial concentration in electrolyte [mol.m-3]": 4541.0, + "Edge heat transfer coefficient [W.m-2.K-1]": 5.0, + "Electrode height [m]": 1.0, + "Electrode width [m]": 0.205, + "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_PeymanMPM, + "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_PeymanMPM, + "Exchange-current density for plating [A.m-2]": 0.001, + "Initial concentration in electrolyte [mol.m-3]": 1000.0, + "Initial concentration in negative electrode [mol.m-3]": 48.8682, + "Initial concentration in positive electrode [mol.m-3]": 31513.0, + "Initial inner SEI thickness [m]": 2.5e-09, + "Initial outer SEI thickness [m]": 2.5e-09, + "Initial plated lithium concentration [mol.m-3]": 0.0, + "Initial temperature [K]": 298.15, + "Inner SEI electron conductivity [S.m-1]": 8.95e-14, + "Inner SEI lithium interstitial diffusivity [m2.s-1]": 1e-20, + "Inner SEI open-circuit potential [V]": 0.1, + "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Inner SEI reaction proportion": 0.5, + "Lithium interstitial reference concentration [mol.m-3]": 15.0, + "Lithium metal partial molar volume [m3.mol-1]": 1.3e-05, + "Lithium plating transfer coefficient": 0.7, + "Lower voltage cut-off [V]": 2.8, + "Maximum concentration in negative electrode [mol.m-3]": 28746.0, + "Maximum concentration in positive electrode [mol.m-3]": 35380.0, + "Negative current collector conductivity [S.m-1]": 59600000.0, + "Negative current collector density [kg.m-3]": 8954.0, + "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, + "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, + "Negative current collector thermal conductivity [W.m-1.K-1]": 401.0, + "Negative current collector thickness [m]": 2.5e-05, + "Negative electrode Bruggeman coefficient (electrode)": 1.5, + "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, + "Negative electrode OCP [V]": graphite_ocp_PeymanMPM, + "Negative electrode OCP entropic change [V.K-1]": graphite_entropic_change_PeymanMPM, + "Negative electrode active material volume fraction": 0.61, + "Negative electrode cation signed stoichiometry": -1.0, + "Negative electrode charge transfer coefficient": 0.5, + "Negative electrode conductivity [S.m-1]": 100.0, + "Negative electrode density [kg.m-3]": 3100.0, + "Negative electrode diffusion coefficient [m2.s-1]": 5e-15, + "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_PeymanMPM, + "Negative electrode double-layer capacity [F.m-2]": 0.2, + "Negative electrode electrons in reaction": 1.0, + "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_PeymanMPM, + "Negative electrode porosity": 0.3, + "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Negative electrode reference exchange-current density [A.m-2(m3.mol)1.5]": 1.061e-06, + "Negative electrode specific heat capacity [J.kg-1.K-1]": 1100.0, + "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, + "Negative electrode thickness [m]": 6.2e-05, + "Negative electrode transport efficiency": 0.16, + "Negative particle radius [m]": 2.5e-06, + "Negative tab heat transfer coefficient [W.m-2.K-1]": 0.0, + "Nominal cell capacity [A.h]": 5.0, + "Number of cells connected in series to make a battery": 1.0, + "Number of electrodes connected in parallel to make a cell": 1.0, + "Outer SEI open-circuit potential [V]": 0.8, + "Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Outer SEI solvent diffusivity [m2.s-1]": 2.5000000000000002e-22, + "Positive current collector conductivity [S.m-1]": 35500000.0, + "Positive current collector density [kg.m-3]": 2707.0, + "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, + "Positive current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, + "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, + "Positive current collector thickness [m]": 2.5e-05, + "Positive electrode Bruggeman coefficient (electrode)": 1.5, + "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, + "Positive electrode OCP [V]": NMC_ocp_PeymanMPM, + "Positive electrode OCP entropic change [V.K-1]": NMC_entropic_change_PeymanMPM, + "Positive electrode active material volume fraction": 0.445, + "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode charge transfer coefficient": 0.5, + "Positive electrode conductivity [S.m-1]": 100.0, + "Positive electrode density [kg.m-3]": 3100.0, + "Positive electrode diffusivity [m2.s-1]": NMC_diffusivity_PeymanMPM, + "Positive electrode double-layer capacity [F.m-2]": 0.2, + "Positive electrode electrons in reaction": 1.0, + "Positive electrode exchange-current density [A.m-2]": NMC_electrolyte_exchange_current_density_PeymanMPM, + "Positive electrode porosity": 0.3, + "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Positive electrode reference exchange-current density [A.m-2(m3.mol)1.5]": 4.824e-06, + "Positive electrode specific heat capacity [J.kg-1.K-1]": 1100.0, + "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, + "Positive electrode thickness [m]": 6.7e-05, + "Positive electrode transport efficiency": 0.16, + "Positive particle radius [m]": 3.5e-06, + "Positive tab heat transfer coefficient [W.m-2.K-1]": 0.0, + "Ratio of lithium moles to SEI moles": 2.0, + "Reference temperature [K]": 298.15, + "SEI growth activation energy [J.mol-1]": 0.0, + "SEI kinetic rate constant [m.s-1]": 1e-12, + "SEI open-circuit potential [V]": 0.4, + "SEI reaction exchange current density [A.m-2]": 1.5e-07, + "SEI resistivity [Ohm.m]": 200000.0, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator density [kg.m-3]": 397.0, + "Separator porosity": 0.4, + "Separator specific heat capacity [J.kg-1.K-1]": 700.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.16, + "Separator thickness [m]": 1.2e-05, + "Separator transport efficiency ": 0.25, + "Total heat transfer coefficient [W.m-2.K-1]": 5.0, + "Typical current [A]": 5.0, + "Typical electrolyte concentration [mol.m-3]": 1000.0, + "Typical lithium ion diffusivity [m2.s-1]": 5.34e-10, + "Typical plated lithium concentration [mol.m-3]": 1000.0, + "Upper voltage cut-off [V]": 4.2, + } diff --git a/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py b/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py new file mode 100644 index 0000000000..dd5590fffa --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py @@ -0,0 +1,392 @@ +def graphite_diffusivity_Kim2011(sto, T): + """ + Graphite diffusivity [1]. + + References + ---------- + .. [1] Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. + (2011). Multi-domain modeling of lithium-ion batteries encompassing + multi-physics in varied length scales. Journal of The Electrochemical + Society, 158(8), A955-A969. + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + D_ref = 9 * 10 ** (-14) + E_D_s = 4e3 + arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + + return D_ref * arrhenius + +def graphite_ocp_Kim2011(sto): + """ + Graphite Open Circuit Potential (OCP) as a function of the stochiometry [1]. + + References + ---------- + .. [1] Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. + (2011). Multi-domain modeling of lithium-ion batteries encompassing + multi-physics in varied length scales. Journal of The Electrochemical + Society, 158(8), A955-A969. + """ + + u_eq = ( + 0.124 + + 1.5 * exp(-70 * sto) + - 0.0351 * tanh((sto - 0.286) / 0.083) + - 0.0045 * tanh((sto - 0.9) / 0.119) + - 0.035 * tanh((sto - 0.99) / 0.05) + - 0.0147 * tanh((sto - 0.5) / 0.034) + - 0.102 * tanh((sto - 0.194) / 0.142) + - 0.022 * tanh((sto - 0.98) / 0.0164) + - 0.011 * tanh((sto - 0.124) / 0.0226) + + 0.0155 * tanh((sto - 0.105) / 0.029) + ) + + return u_eq + +def graphite_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max, T): + """ + Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in + EC:DMC + [1]. + + References + ---------- + .. [1] Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. + (2011). Multi-domain modeling of lithium-ion batteries encompassing + multi-physics in varied length scales. Journal of The Electrochemical + Society, 158(8), A955-A969. + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + + i0_ref = 36 # reference exchange current density at 100% SOC + sto = 0.36 # stochiometry at 100% SOC + c_s_n_ref = sto * c_s_max # reference electrode concentration + c_e_ref = Parameter("Typical electrolyte concentration [mol.m-3]") + alpha = 0.5 # charge transfer coefficient + + m_ref = i0_ref / ( + c_e_ref**alpha * (c_s_max - c_s_n_ref) ** alpha * c_s_n_ref**alpha + ) + + E_r = 3e4 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + return ( + m_ref + * arrhenius + * c_e**alpha + * c_s_surf**alpha + * (c_s_max - c_s_surf) ** alpha + ) + +def nca_diffusivity_Kim2011(sto, T): + """ + NCA diffusivity as a function of stochiometry [1]. + + References + ---------- + .. [1] Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. + (2011). Multi-domain modeling of lithium-ion batteries encompassing + multi-physics in varied length scales. Journal of The Electrochemical + Society, 158(8), A955-A969. + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + D_ref = 3 * 10 ** (-15) + E_D_s = 2e4 + arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + + return D_ref * arrhenius + +def nca_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max, T): + """ + Exchange-current density for Butler-Volmer reactions between NCA and LiPF6 in EC:DMC + [1]. + + References + ---------- + .. [1] Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. + (2011). Multi-domain modeling of lithium-ion batteries encompassing + multi-physics in varied length scales. Journal of The Electrochemical + Society, 158(8), A955-A969. + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + i0_ref = 4 # reference exchange current density at 100% SOC + sto = 0.41 # stochiometry at 100% SOC + c_s_ref = sto * c_s_max # reference electrode concentration + c_e_ref = Parameter("Typical electrolyte concentration [mol.m-3]") + alpha = 0.5 # charge transfer coefficient + + m_ref = i0_ref / ( + c_e_ref**alpha * (c_s_max - c_s_ref) ** alpha * c_s_ref**alpha + ) + E_r = 3e4 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + return ( + m_ref + * arrhenius + * c_e**alpha + * c_s_surf**alpha + * (c_s_max - c_s_surf) ** alpha + ) + +def electrolyte_diffusivity_Kim2011(c_e, T): + """ + Diffusivity of LiPF6 in EC as a function of ion concentration from [1]. + + References + ---------- + .. [1] Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. + (2011). Multi-domain modeling of lithium-ion batteries encompassing + multi-physics in varied length scales. Journal of The Electrochemical + Society, 158(8), A955-A969. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + D_c_e = ( + 5.84 * 10 ** (-7) * exp(-2870 / T) * (c_e / 1000) ** 2 + - 33.9 * 10 ** (-7) * exp(-2920 / T) * (c_e / 1000) + + 129 * 10 ** (-7) * exp(-3200 / T) + ) + + return D_c_e + +def electrolyte_conductivity_Kim2011(c_e, T): + """ + Conductivity of LiPF6 in EC as a function of ion concentration from [1]. + + References + ---------- + .. [1] Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. + (2011). Multi-domain modeling of lithium-ion batteries encompassing + multi-physics in varied length scales. Journal of The Electrochemical + Society, 158(8), A955-A969. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + sigma_e = ( + 3.45 * exp(-798 / T) * (c_e / 1000) ** 3 + - 48.5 * exp(-1080 / T) * (c_e / 1000) ** 2 + + 244 * exp(-1440 / T) * (c_e / 1000) + ) + + return sigma_e + +def get_parameter_values(): + return {'1 + dlnf/dlnc': 1.0, + 'Ambient temperature [K]': 298.15, + 'Bulk solvent concentration [mol.m-3]': 2636.0, + 'Cation transference number': 0.4, + 'Cell cooling surface area [m2]': 0.0561, + 'Cell volume [m3]': 4.62e-06, + 'Current function [A]': 0.43, + 'EC diffusivity [m2.s-1]': 2e-18, + 'EC initial concentration in electrolyte [mol.m-3]': 4541.0, + 'Edge heat transfer coefficient [W.m-2.K-1]': 0.3, + 'Electrode height [m]': 0.2, + 'Electrode width [m]': 0.14, + 'Electrolyte conductivity [S.m-1]': electrolyte_conductivity_Kim2011, + 'Electrolyte diffusivity [m2.s-1]': electrolyte_diffusivity_Kim2011, + 'Initial concentration in electrolyte [mol.m-3]': 1200.0, + 'Initial concentration in negative electrode [mol.m-3]': 18081.0, + 'Initial concentration in positive electrode [mol.m-3]': 20090.0, + 'Initial inner SEI thickness [m]': 2.5e-09, + 'Initial outer SEI thickness [m]': 2.5e-09, + 'Initial temperature [K]': 298.15, + 'Inner SEI electron conductivity [S.m-1]': 8.95e-14, + 'Inner SEI lithium interstitial diffusivity [m2.s-1]': 1e-20, + 'Inner SEI open-circuit potential [V]': 0.1, + 'Inner SEI partial molar volume [m3.mol-1]': 9.585e-05, + 'Inner SEI reaction proportion': 0.5, + 'Lithium interstitial reference concentration [mol.m-3]': 15.0, + 'Lower voltage cut-off [V]': 2.7, + 'Maximum concentration in negative electrode [mol.m-3]': 28700.0, + 'Maximum concentration in positive electrode [mol.m-3]': 49000.0, + 'Negative current collector conductivity [S.m-1]': 59600000.0, + 'Negative current collector density [kg.m-3]': 11544.75, + 'Negative current collector specific heat capacity [J.kg-1.K-1]': 385.0, + 'Negative current collector surface heat transfer coefficient [W.m-2.K-1]': 0.0, + 'Negative current collector thermal conductivity [W.m-1.K-1]': 267.467, + 'Negative current collector thickness [m]': 1e-05, + 'Negative electrode Bruggeman coefficient (electrode)': 2.0, + 'Negative electrode Bruggeman coefficient (electrolyte)': 2.0, + 'Negative electrode OCP [V]': graphite_ocp_Kim2011, + 'Negative electrode OCP entropic change [V.K-1]': 0.0, + 'Negative electrode active material volume fraction': 0.51, + 'Negative electrode cation signed stoichiometry': -1.0, + 'Negative electrode charge transfer coefficient': 0.5, + 'Negative electrode conductivity [S.m-1]': 100.0, + 'Negative electrode density [kg.m-3]': 2136.43638, + 'Negative electrode diffusivity [m2.s-1]': graphite_diffusivity_Kim2011, + 'Negative electrode double-layer capacity [F.m-2]': 0.2, + 'Negative electrode electrons in reaction': 1.0, + 'Negative electrode exchange-current density [A.m-2]': graphite_electrolyte_exchange_current_density_Kim2011, + 'Negative electrode porosity': 0.4, + 'Negative electrode reaction-driven LAM factor [m3.mol-1]': 0.0, + 'Negative electrode specific heat capacity [J.kg-1.K-1]': 700.0, + 'Negative electrode thermal conductivity [W.m-1.K-1]': 1.1339, + 'Negative electrode thickness [m]': 7e-05, + 'Negative particle radius [m]': 5.083e-07, + 'Negative tab centre y-coordinate [m]': 0.013, + 'Negative tab centre z-coordinate [m]': 0.2, + 'Negative tab heat transfer coefficient [W.m-2.K-1]': 25.0, + 'Negative tab width [m]': 0.044, + 'Nominal cell capacity [A.h]': 0.43, + 'Number of cells connected in series to make a battery': 1.0, + 'Number of electrodes connected in parallel to make a cell': 1.0, + 'Outer SEI open-circuit potential [V]': 0.8, + 'Outer SEI partial molar volume [m3.mol-1]': 9.585e-05, + 'Outer SEI solvent diffusivity [m2.s-1]': 2.5000000000000002e-22, + 'Positive current collector conductivity [S.m-1]': 37800000.0, + 'Positive current collector density [kg.m-3]': 3490.24338, + 'Positive current collector specific heat capacity [J.kg-1.K-1]': 897.0, + 'Positive current collector surface heat transfer coefficient [W.m-2.K-1]': 0.0, + 'Positive current collector thermal conductivity [W.m-1.K-1]': 158.079, + 'Positive current collector thickness [m]': 1e-05, + 'Positive electrode Bruggeman coefficient (electrode)': 2.0, + 'Positive electrode Bruggeman coefficient (electrolyte)': 2.0, + 'Positive electrode OCP [V]': ('nca_ocp_Kim2011_data, + ([array([0.37021443, 0.37577436, 0.38369048, 0.39189598, 0.40106922, + 0.40686181, 0.41168962, 0.41941373, 0.42665544, 0.43293042, + 0.43969074, 0.44548431, 0.45321039, 0.45852157, 0.46286601, + 0.47107645, 0.47638764, 0.48363133, 0.4894249 , 0.49811871, + 0.50777631, 0.51647111, 0.52805924, 0.53771684, 0.54930891, + 0.55655162, 0.56717498, 0.57683455, 0.58697453, 0.59614876, + 0.6087066 , 0.6159493 , 0.62464311, 0.63526844, 0.64637813, + 0.66038609, 0.67632754, 0.69178562, 0.70386304, 0.72463723, + 0.73913054, 0.75314145, 0.76763475, 0.77971218, 0.79178861, + 0.80434842, 0.81449236, 0.82608542, 0.83574499, 0.84637328, + 0.85603187, 0.86521004, 0.87390286, 0.88404778, 0.89274258, + 0.90240313, 0.91254904, 0.92221058, 0.93380562, 0.94829596, + 0.95795159, 0.96519232, 0.97097405, 0.97434484, 0.97674494, + 0.98058923, 0.98201962, 0.983451 , 0.98488435, 0.98583235, + 0.9872588 , 0.98964212, 0.9905704 , 0.99150558, 0.99338284])], + array([4.21044086, 4.19821487, 4.18214203, 4.16516313, 4.14960477, + 4.1382866 , 4.12979962, 4.11565356, 4.10292309, 4.09018933, + 4.08029169, 4.07039076, 4.05907917, 4.05059383, 4.04210521, + 4.0322125 , 4.02372716, 4.01383117, 4.00393024, 3.99403917, + 3.97989969, 3.97142586, 3.95304124, 3.93890175, 3.92618608, + 3.91487285, 3.89931941, 3.8880144 , 3.87245932, 3.85831819, + 3.84418857, 3.83287533, 3.82298427, 3.81026531, 3.79896523, + 3.78484054, 3.77072242, 3.75660267, 3.74672311, 3.7312042 , + 3.71991563, 3.71004265, 3.69875408, 3.68887453, 3.67757773, + 3.66628259, 3.65639645, 3.64509802, 3.633793 , 3.62532575, + 3.6126035 , 3.60413132, 3.59282302, 3.58435413, 3.5758803 , + 3.56599252, 3.55894086, 3.55047033, 3.54200636, 3.52646608, + 3.50949212, 3.49534441, 3.46843664, 3.45002407, 3.42593926, + 3.39335597, 3.36501616, 3.33809359, 3.3140055 , 3.28708128, + 3.25307253, 3.2048947 , 3.14962574, 3.10427745, 3.02350152]))), + 'Positive electrode OCP entropic change [V.K-1]': 0.0, + 'Positive electrode active material volume fraction': 0.41, + 'Positive electrode cation signed stoichiometry': -1.0, + 'Positive electrode charge transfer coefficient': 0.5, + 'Positive electrode conductivity [S.m-1]': 10.0, + 'Positive electrode density [kg.m-3]': 4205.82708, + 'Positive electrode diffusivity [m2.s-1]': nca_diffusivity_Kim2011, + 'Positive electrode double-layer capacity [F.m-2]': 0.2, + 'Positive electrode electrons in reaction': 1.0, + 'Positive electrode exchange-current density [A.m-2]': nca_electrolyte_exchange_current_density_Kim2011, + 'Positive electrode porosity': 0.4, + 'Positive electrode reaction-driven LAM factor [m3.mol-1]': 0.0, + 'Positive electrode specific heat capacity [J.kg-1.K-1]': 700.0, + 'Positive electrode thermal conductivity [W.m-1.K-1]': 1.4007, + 'Positive electrode thickness [m]': 5e-05, + 'Positive particle radius [m]': 1.633e-06, + 'Positive tab centre y-coordinate [m]': 0.137, + 'Positive tab centre z-coordinate [m]': 0.2, + 'Positive tab heat transfer coefficient [W.m-2.K-1]': 25.0, + 'Positive tab width [m]': 0.044, + 'Ratio of lithium moles to SEI moles': 2.0, + 'Reference temperature [K]': 298.15, + 'SEI growth activation energy [J.mol-1]': 0.0, + 'SEI kinetic rate constant [m.s-1]': 1e-12, + 'SEI open-circuit potential [V]': 0.4, + 'SEI reaction exchange current density [A.m-2]': 1.5e-07, + 'SEI resistivity [Ohm.m]': 200000.0, + 'Separator Bruggeman coefficient (electrolyte)': 2.0, + 'Separator density [kg.m-3]': 511.86798, + 'Separator porosity': 0.4, + 'Separator specific heat capacity [J.kg-1.K-1]': 700.0, + 'Separator thermal conductivity [W.m-1.K-1]': 0.10672, + 'Separator thickness [m]': 2.5e-05, + 'Total heat transfer coefficient [W.m-2.K-1]': 25.0, + 'Typical current [A]': 0.43, + 'Typical electrolyte concentration [mol.m-3]': 1200.0, + 'Upper voltage cut-off [V]': 4.2} \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/OKane2022.py b/pybamm/input/parameters/lithium_ion/OKane2022.py new file mode 100644 index 0000000000..3e864b29ad --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/OKane2022.py @@ -0,0 +1,703 @@ +def plating_exchange_current_density_OKane2020(c_e, c_Li, T): + """ + Exchange-current density for Li plating reaction [A.m-2]. + References + ---------- + .. [1] O’Kane, Simon EJ, Ian D. Campbell, Mohamed WJ Marzook, Gregory J. Offer, and + Monica Marinescu. "Physical origin of the differential voltage minimum associated + with lithium plating in Li-ion batteries." Journal of The Electrochemical Society + 167, no. 9 (2020): 090540. + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_Li : :class:`pybamm.Symbol` + Plated lithium concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + + k_plating = Parameter("Lithium plating kinetic rate constant [m.s-1]") + + return constants.F * k_plating * c_e + +def stripping_exchange_current_density_OKane2020(c_e, c_Li, T): + """ + Exchange-current density for Li stripping reaction [A.m-2]. + + References + ---------- + + .. [1] O’Kane, Simon EJ, Ian D. Campbell, Mohamed WJ Marzook, Gregory J. Offer, and + Monica Marinescu. "Physical origin of the differential voltage minimum associated + with lithium plating in Li-ion batteries." Journal of The Electrochemical Society + 167, no. 9 (2020): 090540. + + Parameters + ---------- + + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_Li : :class:`pybamm.Symbol` + Plated lithium concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + + k_plating = Parameter("Lithium plating kinetic rate constant [m.s-1]") + + return constants.F * k_plating * c_Li + +def SEI_limited_dead_lithium_OKane2022(L_sei): + """ + Decay rate for dead lithium formation [s-1]. + References + ---------- + .. [1] Simon E. J. O'Kane, Weilong Ai, Ganesh Madabattula, Diega Alonso-Alvarez, + Robert Timms, Valentin Sulzer, Jaqueline Sophie Edge, Billy Wu, Gregory J. Offer + and Monica Marinescu. "Lithium-ion battery degradation: how to model it." + Physical Chemistry: Chemical Physics 24, no. 13 (2022): 7909-7922. + Parameters + ---------- + L_sei : :class:`pybamm.Symbol` + Total SEI thickness [m] + Returns + ------- + :class:`pybamm.Symbol` + Dead lithium decay rate [s-1] + """ + + gamma_0 = Parameter("Dead lithium decay constant [s-1]") + L_inner_0 = Parameter("Initial inner SEI thickness [m]") + L_outer_0 = Parameter("Initial outer SEI thickness [m]") + L_sei_0 = L_inner_0 + L_outer_0 + + gamma = gamma_0 * L_sei_0 / L_sei + + return gamma + +def graphite_LGM50_diffusivity_Chen2020(sto, T): + """ + LG M50 Graphite diffusivity as a function of stochiometry, in this case the + diffusivity is taken to be a constant. The value is taken from [1]. + + References + ---------- + .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the + Electrochemical Society 167 (2020): 080534. + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + D_ref = 3.3e-14 + E_D_s = 3.03e4 + # E_D_s not given by Chen et al (2020), so taken from Ecker et al. (2015) instead + arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + + return D_ref * arrhenius + +def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( + c_e, c_s_surf, c_s_max, T +): + """ + Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in + EC:DMC. + + References + ---------- + .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the + Electrochemical Society 167 (2020): 080534. + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + + m_ref = 6.48e-7 # (A/m2)(mol/m3)**1.5 - includes ref concentrations + E_r = 35000 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + return ( + m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + ) + +def graphite_volume_change_Ai2020(sto, c_s_max): + """ + Graphite particle volume change as a function of stochiometry [1, 2]. + + References + ---------- + .. [1] Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). + Electrochemical Thermal-Mechanical Modelling of Stress Inhomogeneity in + Lithium-Ion Pouch Cells. Journal of The Electrochemical Society, 167(1), 013512 + DOI: 10.1149/2.0122001JES. + .. [2] Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). + A new method to model the thickness change of a commercial pouch cell + during discharge. Journal of The Electrochemical Society, 163(8), A1566-A1575. + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry, dimensionless + should be R-averaged particle concentration + Returns + ------- + t_change:class:`pybamm.Symbol` + volume change, dimensionless, normalised by particle volume + """ + p1 = 145.907 + p2 = -681.229 + p3 = 1334.442 + p4 = -1415.710 + p5 = 873.906 + p6 = -312.528 + p7 = 60.641 + p8 = -5.706 + p9 = 0.386 + p10 = -4.966e-05 + t_change = ( + p1 * sto**9 + + p2 * sto**8 + + p3 * sto**7 + + p4 * sto**6 + + p5 * sto**5 + + p6 * sto**4 + + p7 * sto**3 + + p8 * sto**2 + + p9 * sto + + p10 + ) + return t_change + +def graphite_cracking_rate_Ai2020(T_dim): + """ + Graphite particle cracking rate as a function of temperature [1, 2]. + + References + ---------- + .. [1] Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). + Electrochemical Thermal-Mechanical Modelling of Stress Inhomogeneity in + Lithium-Ion Pouch Cells. Journal of The Electrochemical Society, 167(1), 013512 + DOI: 10.1149/2.0122001JES. + .. [2] Deshpande, R., Verbrugge, M., Cheng, Y. T., Wang, J., & Liu, P. (2012). + Battery cycle life prediction with coupled chemical degradation and fatigue + mechanics. Journal of the Electrochemical Society, 159(10), A1730. + + Parameters + ---------- + T_dim: :class:`pybamm.Symbol` + temperature, [K] + + Returns + ------- + k_cr: :class:`pybamm.Symbol` + cracking rate, [m/(Pa.m0.5)^m_cr] + where m_cr is another Paris' law constant + """ + k_cr = 3.9e-20 + Eac_cr = 0 # to be implemented + arrhenius = exp(Eac_cr / constants.R * (1 / T_dim - 1 / 298.15)) + return k_cr * arrhenius + +def nmc_LGM50_diffusivity_Chen2020(sto, T): + """ + NMC diffusivity as a function of stoichiometry, in this case the + diffusivity is taken to be a constant. The value is taken from [1]. + + References + ---------- + .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the + Electrochemical Society 167 (2020): 080534. + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + D_ref = 4e-15 + E_D_s = 25000 # O'Kane et al. (2022), after Cabanero et al. (2018) + arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + + return D_ref * arrhenius + +def nmc_LGM50_ocp_Chen2020(sto): + """ + LG M50 NMC open circuit potential as a function of stochiometry, fit taken + from [1]. + + References + ---------- + .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the + Electrochemical Society 167 (2020): 080534. + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + + Returns + ------- + :class:`pybamm.Symbol` + Open circuit potential + """ + + u_eq = ( + -0.8090 * sto + + 4.4875 + - 0.0428 * tanh(18.5138 * (sto - 0.5542)) + - 17.7326 * tanh(15.7890 * (sto - 0.3117)) + + 17.5842 * tanh(15.9308 * (sto - 0.3120)) + ) + + return u_eq + +def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_max, T): + """ + Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in + EC:DMC. + + References + ---------- + .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the + Electrochemical Society 167 (2020): 080534. + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + m_ref = 3.42e-6 # (A/m2)(mol/m3)**1.5 - includes ref concentrations + E_r = 17800 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + return ( + m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + ) + +def volume_change_Ai2020(sto, c_s_max): + """ + Particle volume change as a function of stochiometry [1, 2]. + + References + ---------- + .. [1] > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). + Electrochemical Thermal-Mechanical Modelling of Stress Inhomogeneity in + Lithium-Ion Pouch Cells. Journal of The Electrochemical Society, 167(1), 013512 + DOI: 10.1149/2.0122001JES. + .. [2] > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). + A new method to model the thickness change of a commercial pouch cell + during discharge. Journal of The Electrochemical Society, 163(8), A1566-A1575. + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry, dimensionless + should be R-averaged particle concentration + Returns + ------- + t_change:class:`pybamm.Symbol` + volume change, dimensionless, normalised by particle volume + """ + omega = Parameter("Positive electrode partial molar volume [m3.mol-1]") + t_change = omega * c_s_max * sto + return t_change + +def cracking_rate_Ai2020(T_dim): + """ + Particle cracking rate as a function of temperature [1, 2]. + + References + ---------- + .. [1] > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). + Electrochemical Thermal-Mechanical Modelling of Stress Inhomogeneity in + Lithium-Ion Pouch Cells. Journal of The Electrochemical Society, 167(1), 013512 + DOI: 10.1149/2.0122001JES. + .. [2] > Deshpande, R., Verbrugge, M., Cheng, Y. T., Wang, J., & Liu, P. (2012). + Battery cycle life prediction with coupled chemical degradation and fatigue + mechanics. Journal of the Electrochemical Society, 159(10), A1730. + + Parameters + ---------- + T: :class:`pybamm.Symbol` + temperature, [K] + + Returns + ------- + k_cr: :class:`pybamm.Symbol` + cracking rate, [m/(Pa.m0.5)^m_cr] + where m_cr is another Paris' law constant + """ + k_cr = 3.9e-20 + Eac_cr = 0 # to be implemented + arrhenius = exp(Eac_cr / constants.R * (1 / T_dim - 1 / 298.15)) + return k_cr * arrhenius + +def electrolyte_diffusivity_Nyman2008_arrhenius(c_e, T): + """ + Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data + comes from [1], with Arrhenius temperature dependence added from [2]. + + References + ---------- + .. [1] A. Nyman, M. Behm, and G. Lindbergh, "Electrochemical characterisation and + modelling of the mass transport phenomena in LiPF6-EC-EMC electrolyte," + Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. + .. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of + a lithium-ion battery i. determination of parameters." Journal of the + Electrochemical Society 162.9 (2015): A1836-A1848. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + D_c_e = 8.794e-11 * (c_e / 1000) ** 2 - 3.972e-10 * (c_e / 1000) + 4.862e-10 + + # Nyman et al. (2008) does not provide temperature dependence + # So use temperature dependence from Ecker et al. (2015) instead + + E_D_c_e = 17000 + arrhenius = exp(E_D_c_e / constants.R * (1 / 298.15 - 1 / T)) + + return D_c_e * arrhenius + +def electrolyte_conductivity_Nyman2008_arrhenius(c_e, T): + """ + Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data + comes from [1], with Arrhenius temperature dependence added from [2]. + + References + ---------- + .. [1] A. Nyman, M. Behm, and G. Lindbergh, "Electrochemical characterisation and + modelling of the mass transport phenomena in LiPF6-EC-EMC electrolyte," + Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. + .. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of + a lithium-ion battery i. determination of parameters." Journal of the + Electrochemical Society 162.9 (2015): A1836-A1848. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + sigma_e = ( + 0.1297 * (c_e / 1000) ** 3 - 2.51 * (c_e / 1000) ** 1.5 + 3.329 * (c_e / 1000) + ) + + # Nyman et al. (2008) does not provide temperature dependence + # So use temperature dependence from Ecker et al. (2015) instead + + E_sigma_e = 17000 + arrhenius = exp(E_sigma_e / constants.R * (1 / 298.15 - 1 / T)) + + return sigma_e * arrhenius + +def get_parameter_values(): + return {'1 + dlnf/dlnc': 1.0, + 'Ambient temperature [K]': 298.15, + 'Bulk solvent concentration [mol.m-3]': 2636.0, + 'Cation transference number': 0.2594, + 'Cell cooling surface area [m2]': 0.00531, + 'Cell thermal expansion coefficient [m.K-1]': 1.1e-06, + 'Cell volume [m3]': 2.42e-05, + 'Current function [A]': 5.0, + 'Dead lithium decay constant [s-1]': 1e-06, + 'Dead lithium decay rate [s-1]': SEI_limited_dead_lithium_OKane2022, + 'EC diffusivity [m2.s-1]': 2e-18, + 'EC initial concentration in electrolyte [mol.m-3]': 4541.0, + 'Electrode height [m]': 0.065, + 'Electrode width [m]': 1.58, + 'Electrolyte conductivity [S.m-1]': electrolyte_conductivity_Nyman2008_arrhenius, + 'Electrolyte diffusivity [m2.s-1]': electrolyte_diffusivity_Nyman2008_arrhenius, + 'Exchange-current density for plating [A.m-2]': plating_exchange_current_density_OKane2020, + 'Exchange-current density for stripping [A.m-2]': stripping_exchange_current_density_OKane2020, + 'Initial concentration in electrolyte [mol.m-3]': 1000.0, + 'Initial concentration in negative electrode [mol.m-3]': 29866.0, + 'Initial concentration in positive electrode [mol.m-3]': 17038.0, + 'Initial inner SEI thickness [m]': 0.0, + 'Initial outer SEI thickness [m]': 5e-09, + 'Initial plated lithium concentration [mol.m-3]': 0.0, + 'Initial temperature [K]': 298.15, + 'Inner SEI electron conductivity [S.m-1]': 8.95e-14, + 'Inner SEI lithium interstitial diffusivity [m2.s-1]': 1e-20, + 'Inner SEI open-circuit potential [V]': 0.1, + 'Inner SEI partial molar volume [m3.mol-1]': 9.585e-05, + 'Inner SEI reaction proportion': 0.0, + 'Lithium interstitial reference concentration [mol.m-3]': 15.0, + 'Lithium metal partial molar volume [m3.mol-1]': 1.3e-05, + 'Lithium plating kinetic rate constant [m.s-1]': 1e-09, + 'Lithium plating transfer coefficient': 0.65, + 'Lower voltage cut-off [V]': 2.5, + 'Maximum concentration in negative electrode [mol.m-3]': 33133.0, + 'Maximum concentration in positive electrode [mol.m-3]': 63104.0, + 'Negative current collector conductivity [S.m-1]': 58411000.0, + 'Negative current collector density [kg.m-3]': 8960.0, + 'Negative current collector specific heat capacity [J.kg-1.K-1]': 385.0, + 'Negative current collector thermal conductivity [W.m-1.K-1]': 401.0, + 'Negative current collector thickness [m]': 1.2e-05, + 'Negative electrode Bruggeman coefficient (electrode)': 1.5, + 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5, + 'Negative electrode LAM constant exponential term': 2.0, + 'Negative electrode LAM constant proportional term [s-1]': 2.7778e-07, + 'Negative electrode OCP [V]': ('graphite_LGM50_ocp_Chen2020, + ([array([0. , 0.03129623, 0.03499902, 0.0387018 , 0.04240458, + 0.04610736, 0.04981015, 0.05351292, 0.05721568, 0.06091845, + 0.06462122, 0.06832399, 0.07202675, 0.07572951, 0.07943227, + 0.08313503, 0.08683779, 0.09054054, 0.09424331, 0.09794607, + 0.10164883, 0.10535158, 0.10905434, 0.1127571 , 0.11645985, + 0.12016261, 0.12386536, 0.12756811, 0.13127086, 0.13497362, + 0.13867638, 0.14237913, 0.14608189, 0.14978465, 0.15348741, + 0.15719018, 0.16089294, 0.1645957 , 0.16829847, 0.17200122, + 0.17570399, 0.17940674, 0.1831095 , 0.18681229, 0.19051504, + 0.1942178 , 0.19792056, 0.20162334, 0.2053261 , 0.20902886, + 0.21273164, 0.2164344 , 0.22013716, 0.22383993, 0.2275427 , + 0.23124547, 0.23494825, 0.23865101, 0.24235377, 0.24605653, + 0.2497593 , 0.25346208, 0.25716486, 0.26086762, 0.26457039, + 0.26827314, 0.2719759 , 0.27567867, 0.27938144, 0.28308421, + 0.28678698, 0.29048974, 0.29419251, 0.29789529, 0.30159806, + 0.30530083, 0.30900361, 0.31270637, 0.31640913, 0.32011189, + 0.32381466, 0.32751744, 0.33122021, 0.33492297, 0.33862575, + 0.34232853, 0.34603131, 0.34973408, 0.35343685, 0.35713963, + 0.36084241, 0.36454517, 0.36824795, 0.37195071, 0.37565348, + 0.37935626, 0.38305904, 0.38676182, 0.3904646 , 0.39416737, + 0.39787015, 0.40157291, 0.40527567, 0.40897844, 0.41268121, + 0.41638398, 0.42008676, 0.42378953, 0.4274923 , 0.43119506, + 0.43489784, 0.43860061, 0.44230338, 0.44600615, 0.44970893, + 0.45341168, 0.45711444, 0.46081719, 0.46451994, 0.46822269, + 0.47192545, 0.47562821, 0.47933098, 0.48303375, 0.48673651, + 0.49043926, 0.49414203, 0.49784482, 0.50154759, 0.50525036, + 0.50895311, 0.51265586, 0.51635861, 0.52006139, 0.52376415, + 0.52746692, 0.53116969, 0.53487245, 0.53857521, 0.54227797, + 0.54598074, 0.5496835 , 0.55338627, 0.55708902, 0.56079178, + 0.56449454, 0.5681973 , 0.57190006, 0.57560282, 0.57930558, + 0.58300835, 0.58671112, 0.59041389, 0.59411664, 0.59781941, + 0.60152218, 0.60522496, 0.60892772, 0.61263048, 0.61633325, + 0.62003603, 0.6237388 , 0.62744156, 0.63114433, 0.63484711, + 0.63854988, 0.64225265, 0.64595543, 0.64965823, 0.653361 , + 0.65706377, 0.66076656, 0.66446934, 0.66817212, 0.67187489, + 0.67557767, 0.67928044, 0.68298322, 0.686686 , 0.69038878, + 0.69409156, 0.69779433, 0.70149709, 0.70519988, 0.70890264, + 0.7126054 , 0.71630818, 0.72001095, 0.72371371, 0.72741648, + 0.73111925, 0.73482204, 0.7385248 , 0.74222757, 0.74593034, + 0.74963312, 0.75333589, 0.75703868, 0.76074146, 0.76444422, + 0.76814698, 0.77184976, 0.77555253, 0.77925531, 0.78295807, + 0.78666085, 0.79036364, 0.79406641, 0.79776918, 0.80147197, + 0.80517474, 0.80887751, 0.81258028, 0.81628304, 0.81998581, + 0.82368858, 0.82739136, 0.83109411, 0.83479688, 0.83849965, + 0.84220242, 0.84590519, 0.84960797, 0.85331075, 0.85701353, + 0.86071631, 0.86441907, 0.86812186, 0.87182464, 0.87552742, + 0.87923019, 0.88293296, 0.88663573, 0.89033849, 0.89404126, + 0.89774404, 0.9014468 , 1. ])], + array([1.81772748, 1.0828807 , 0.99593794, 0.90023398, 0.79649431, + 0.73354429, 0.66664314, 0.64137149, 0.59813869, 0.5670836 , + 0.54746181, 0.53068399, 0.51304734, 0.49394092, 0.47926274, + 0.46065259, 0.45992726, 0.43801501, 0.42438665, 0.41150269, + 0.40033659, 0.38957134, 0.37756538, 0.36292541, 0.34357086, + 0.3406314 , 0.32299468, 0.31379458, 0.30795386, 0.29207319, + 0.28697687, 0.27405477, 0.2670497 , 0.25857493, 0.25265783, + 0.24826777, 0.2414345 , 0.23362778, 0.22956218, 0.22370236, + 0.22181271, 0.22089651, 0.2194268 , 0.21830064, 0.21845333, + 0.21753715, 0.21719357, 0.21635373, 0.21667822, 0.21738444, + 0.21469313, 0.21541846, 0.21465495, 0.2135479 , 0.21392964, + 0.21074206, 0.20873788, 0.20465319, 0.20205732, 0.19774358, + 0.19444147, 0.19190285, 0.18850531, 0.18581399, 0.18327537, + 0.18157659, 0.17814088, 0.17529686, 0.1719375 , 0.16934161, + 0.16756649, 0.16609676, 0.16414985, 0.16260378, 0.16224113, + 0.160027 , 0.15827096, 0.1588054 , 0.15552238, 0.15580869, + 0.15220118, 0.1511132 , 0.14987253, 0.14874637, 0.14678037, + 0.14620776, 0.14555879, 0.14389819, 0.14359279, 0.14242846, + 0.14038612, 0.13882096, 0.13954628, 0.13946992, 0.13780934, + 0.13973714, 0.13698858, 0.13523254, 0.13441178, 0.1352898 , + 0.13507985, 0.13647321, 0.13601512, 0.13435452, 0.1334765 , + 0.1348317 , 0.13275118, 0.13286571, 0.13263667, 0.13456447, + 0.13471718, 0.13395369, 0.13448814, 0.1334765 , 0.13298023, + 0.13259849, 0.13338107, 0.13309476, 0.13275118, 0.13443087, + 0.13315202, 0.132713 , 0.1330184 , 0.13278936, 0.13225491, + 0.13317111, 0.13263667, 0.13187316, 0.13265574, 0.13250305, + 0.13324745, 0.13204496, 0.13242669, 0.13233127, 0.13198769, + 0.13254122, 0.13145325, 0.13298023, 0.13168229, 0.1313578 , + 0.13235036, 0.13120511, 0.13089971, 0.13109058, 0.13082336, + 0.13011713, 0.129869 , 0.12992626, 0.12942998, 0.12796026, + 0.12862831, 0.12656689, 0.12734947, 0.12509716, 0.12110791, + 0.11839751, 0.11244226, 0.11307214, 0.1092165 , 0.10683058, + 0.10433014, 0.10530359, 0.10056993, 0.09950104, 0.09854668, + 0.09921473, 0.09541635, 0.09980643, 0.0986612 , 0.09560722, + 0.09755413, 0.09612258, 0.09430929, 0.09661885, 0.09366032, + 0.09522548, 0.09535909, 0.09316404, 0.09450016, 0.0930877 , + 0.09343126, 0.0932404 , 0.09350762, 0.09339309, 0.09291591, + 0.09303043, 0.0926296 , 0.0932404 , 0.09261052, 0.09249599, + 0.09240055, 0.09253416, 0.09209515, 0.09234329, 0.09366032, + 0.09333583, 0.09322131, 0.09264868, 0.09253416, 0.09243873, + 0.09230512, 0.09310678, 0.09165615, 0.09159888, 0.09207606, + 0.09175158, 0.09177067, 0.09236237, 0.09241964, 0.09320222, + 0.09199972, 0.09167523, 0.09322131, 0.09190428, 0.09167523, + 0.09285865, 0.09180884, 0.09150345, 0.09186611, 0.0920188 , + 0.09320222, 0.09131257, 0.09117896, 0.09133166, 0.09089265, + 0.09058725, 0.09051091, 0.09033912, 0.09041547, 0.0911217 , + 0.0894611 , 0.08999555, 0.08921297, 0.08881213, 0.08797229, + 0.08709427, 0.08503284, 0.07601531]))), + 'Negative electrode OCP entropic change [V.K-1]': 0.0, + "Negative electrode Paris' law constant b": 1.12, + "Negative electrode Paris' law constant m": 2.2, + "Negative electrode Poisson's ratio": 0.3, + "Negative electrode Young's modulus [Pa]": 15000000000.0, + 'Negative electrode active material volume fraction': 0.75, + 'Negative electrode cation signed stoichiometry': -1.0, + 'Negative electrode charge transfer coefficient': 0.5, + 'Negative electrode conductivity [S.m-1]': 215.0, + 'Negative electrode cracking rate': graphite_cracking_rate_Ai2020, + 'Negative electrode critical stress [Pa]': 60000000.0, + 'Negative electrode density [kg.m-3]': 1657.0, + 'Negative electrode diffusivity [m2.s-1]': graphite_LGM50_diffusivity_Chen2020, + 'Negative electrode double-layer capacity [F.m-2]': 0.2, + 'Negative electrode electrons in reaction': 1.0, + 'Negative electrode exchange-current density [A.m-2]': graphite_LGM50_electrolyte_exchange_current_density_Chen2020, + 'Negative electrode initial crack length [m]': 2e-08, + 'Negative electrode initial crack width [m]': 1.5e-08, + 'Negative electrode number of cracks per unit area [m-2]': 3180000000000000.0, + 'Negative electrode partial molar volume [m3.mol-1]': 3.1e-06, + 'Negative electrode porosity': 0.25, + 'Negative electrode reaction-driven LAM factor [m3.mol-1]': 0.0, + 'Negative electrode reference concentration for free of deformation [mol.m-3]': 0.0, + 'Negative electrode specific heat capacity [J.kg-1.K-1]': 700.0, + 'Negative electrode thermal conductivity [W.m-1.K-1]': 1.7, + 'Negative electrode thickness [m]': 8.52e-05, + 'Negative electrode volume change': graphite_volume_change_Ai2020, + 'Negative particle radius [m]': 5.86e-06, + 'Nominal cell capacity [A.h]': 5.0, + 'Number of cells connected in series to make a battery': 1.0, + 'Number of electrodes connected in parallel to make a cell': 1.0, + 'Outer SEI open-circuit potential [V]': 0.8, + 'Outer SEI partial molar volume [m3.mol-1]': 9.585e-05, + 'Outer SEI solvent diffusivity [m2.s-1]': 2.5000000000000002e-22, + 'Positive current collector conductivity [S.m-1]': 36914000.0, + 'Positive current collector density [kg.m-3]': 2700.0, + 'Positive current collector specific heat capacity [J.kg-1.K-1]': 897.0, + 'Positive current collector thermal conductivity [W.m-1.K-1]': 237.0, + 'Positive current collector thickness [m]': 1.6e-05, + 'Positive electrode Bruggeman coefficient (electrode)': 1.5, + 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5, + 'Positive electrode LAM constant exponential term': 2.0, + 'Positive electrode LAM constant proportional term [s-1]': 2.7778e-07, + 'Positive electrode OCP [V]': nmc_LGM50_ocp_Chen2020, + 'Positive electrode OCP entropic change [V.K-1]': 0.0, + "Positive electrode Paris' law constant b": 1.12, + "Positive electrode Paris' law constant m": 2.2, + "Positive electrode Poisson's ratio": 0.2, + "Positive electrode Young's modulus [Pa]": 375000000000.0, + 'Positive electrode active material volume fraction': 0.665, + 'Positive electrode cation signed stoichiometry': -1.0, + 'Positive electrode charge transfer coefficient': 0.5, + 'Positive electrode conductivity [S.m-1]': 0.18, + 'Positive electrode cracking rate': cracking_rate_Ai2020, + 'Positive electrode critical stress [Pa]': 375000000.0, + 'Positive electrode density [kg.m-3]': 3262.0, + 'Positive electrode diffusivity [m2.s-1]': nmc_LGM50_diffusivity_Chen2020, + 'Positive electrode double-layer capacity [F.m-2]': 0.2, + 'Positive electrode electrons in reaction': 1.0, + 'Positive electrode exchange-current density [A.m-2]': nmc_LGM50_electrolyte_exchange_current_density_Chen2020, + 'Positive electrode initial crack length [m]': 2e-08, + 'Positive electrode initial crack width [m]': 1.5e-08, + 'Positive electrode number of cracks per unit area [m-2]': 3180000000000000.0, + 'Positive electrode partial molar volume [m3.mol-1]': 1.25e-05, + 'Positive electrode porosity': 0.335, + 'Positive electrode reaction-driven LAM factor [m3.mol-1]': 0.0, + 'Positive electrode reference concentration for free of deformation [mol.m-3]': 0.0, + 'Positive electrode specific heat capacity [J.kg-1.K-1]': 700.0, + 'Positive electrode thermal conductivity [W.m-1.K-1]': 2.1, + 'Positive electrode thickness [m]': 7.56e-05, + 'Positive electrode volume change': volume_change_Ai2020, + 'Positive particle radius [m]': 5.22e-06, + 'Ratio of lithium moles to SEI moles': 1.0, + 'Reference temperature [K]': 298.15, + 'SEI growth activation energy [J.mol-1]': 38000.0, + 'SEI kinetic rate constant [m.s-1]': 1e-12, + 'SEI open-circuit potential [V]': 0.4, + 'SEI reaction exchange current density [A.m-2]': 1.5e-07, + 'SEI resistivity [Ohm.m]': 200000.0, + 'Separator Bruggeman coefficient (electrolyte)': 1.5, + 'Separator density [kg.m-3]': 397.0, + 'Separator porosity': 0.47, + 'Separator specific heat capacity [J.kg-1.K-1]': 700.0, + 'Separator thermal conductivity [W.m-1.K-1]': 0.16, + 'Separator thickness [m]': 1.2e-05, + 'Total heat transfer coefficient [W.m-2.K-1]': 10.0, + 'Typical current [A]': 5.0, + 'Typical electrolyte concentration [mol.m-3]': 1000.0, + 'Typical plated lithium concentration [mol.m-3]': 1000.0, + 'Upper voltage cut-off [V]': 4.2} \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/ORegan2022.py b/pybamm/input/parameters/lithium_ion/ORegan2022.py new file mode 100644 index 0000000000..7b1e0143ec --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/ORegan2022.py @@ -0,0 +1,819 @@ +def copper_heat_capacity_CRC(T): + """ + Copper specific heat capacity as a function of the temperature from [1]. + + References + ---------- + .. [1] William M. Haynes (Ed.). "CRC handbook of chemistry and physics". CRC Press + (2014). + + Parameters + ---------- + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Specific heat capacity + """ + + cp = 1.445e-6 * T**3 - 1.946e-3 * T**2 + 0.9633 * T + 236 + + return cp + +def aluminium_heat_capacity_CRC(T): + """ + Aluminium specific heat capacity as a function of the temperature from [1]. + + References + ---------- + .. [1] William M. Haynes (Ed.). "CRC handbook of chemistry and physics". CRC Press + (2014). + + Parameters + ---------- + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Specific heat capacity + """ + + cp = 4.503e-6 * T**3 - 6.256e-3 * T**2 + 3.281 * T + 355.7 + + return cp + +def copper_thermal_conductivity_CRC(T): + """ + Copper thermal conductivity as a function of the temperature from [1]. + + References + ---------- + .. [1] William M. Haynes (Ed.). "CRC handbook of chemistry and physics". CRC Press + (2014). + + Parameters + ---------- + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Thermal conductivity + """ + + lambda_th = -5.409e-7 * T**3 + 7.054e-4 * T**2 - 0.3727 * T + 463.6 + + return lambda_th + +def graphite_LGM50_diffusivity_ORegan2022(sto, T): + """ + LG M50 Graphite diffusivity as a function of stochiometry, in this case the + diffusivity is taken to be a constant. The value is taken from [1]. + + References + ---------- + .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma + Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion + cylindrical battery." Electrochimica Acta 425 (2022): 140700 + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + a0 = 11.17 + a1 = -1.553 + a2 = -6.136 + a3 = -9.725 + a4 = 1.85 + b1 = 0.2031 + b2 = 0.5375 + b3 = 0.9144 + b4 = 0.5953 + c0 = -15.11 + c1 = 0.0006091 + c2 = 0.06438 + c3 = 0.0578 + c4 = 0.001356 + d = 2092 + + D_ref = ( + 10 + ** ( + a0 * sto + + c0 + + a1 * exp(-((sto - b1) ** 2) / c1) + + a2 * exp(-((sto - b2) ** 2) / c2) + + a3 * exp(-((sto - b3) ** 2) / c3) + + a4 * exp(-((sto - b4) ** 2) / c4) + ) + * 3.0321 # correcting factor (see O'Regan et al 2021) + ) + + E_D_s = d * constants.R + arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + + return D_ref * arrhenius + +def graphite_LGM50_ocp_Chen2020(sto): + """ + LG M50 Graphite open-circuit potential as a function of stochiometry, fit taken + from [1]. + + References + ---------- + .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the + Electrochemical Society 167 (2020): 080534. + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + + Returns + ------- + :class:`pybamm.Symbol` + Open-circuit potential + """ + + U = ( + 1.9793 * exp(-39.3631 * sto) + + 0.2482 + - 0.0909 * tanh(29.8538 * (sto - 0.1234)) + - 0.04478 * tanh(14.9159 * (sto - 0.2769)) + - 0.0205 * tanh(30.4444 * (sto - 0.6103)) + ) + + return U + +def graphite_LGM50_electrolyte_exchange_current_density_ORegan2022( + c_e, c_s_surf, c_s_max, T +): + """ + Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in + EC:DMC. + + References + ---------- + .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma + Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion + cylindrical battery." Electrochimica Acta 425 (2022): 140700 + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + + i_ref = 2.668 # (A/m2) + alpha = 0.792 + E_r = 4e4 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + c_e_ref = Parameter("Typical electrolyte concentration [mol.m-3]") + + return ( + i_ref + * arrhenius + * (c_e / c_e_ref) ** (1 - alpha) + * (c_s_surf / c_s_max) ** alpha + * (1 - c_s_surf / c_s_max) ** (1 - alpha) + ) + +def graphite_LGM50_heat_capacity_ORegan2022(T): + """ + Wet negative electrode specific heat capacity as a function of the temperature from + [1]. + + References + ---------- + .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma + Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion + cylindrical battery." Electrochimica Acta 425 (2022): 140700 + + Parameters + ---------- + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Specific heat capacity + """ + + # value for the dry porous electrode (i.e. electrode + air, and we neglect the air + # contribution to density) + cp_dry = 4.932e-4 * T**3 - 0.491 * T**2 + 169.4 * T - 1.897e4 + rho_dry = 1740 + theta_dry = rho_dry * cp_dry + + # value for the bulk electrolyte + rho_e = 1280 + cp_e = 229 + eps_e = Parameter("Negative electrode porosity") + theta_e = rho_e * cp_e + + # value for the wet separator + theta_wet = theta_dry + theta_e * eps_e + rho_wet = rho_dry + rho_e * eps_e + cp_wet = theta_wet / rho_wet + + return cp_wet + +def graphite_LGM50_thermal_conductivity_ORegan2022(T): + """ + Wet negative electrode thermal conductivity as a function of the temperature from + [1]. + + References + ---------- + .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma + Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion + cylindrical battery." Electrochimica Acta 425 (2022): 140700 + + Parameters + ---------- + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Thermal conductivity + """ + + lambda_wet = -2.61e-4 * T**2 + 0.1726 * T - 24.49 + + return lambda_wet + +def graphite_LGM50_entropic_change_ORegan2022(sto, c_s_max): + """ + LG M50 Graphite entropic change in open circuit potential (OCP) at a temperature of + 298.15K as a function of the stochiometry. The fit is taken from [1]. + + References + ---------- + .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma + Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion + cylindrical battery." Electrochimica Acta 425 (2022): 140700 + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + + Returns + ------- + :class:`pybamm.Symbol` + Entropic change [V.K-1] + """ + + a0 = -0.1112 + a1 = -0.09002 * 0 # fixed fit (see discussion O'Regan et al 2021) + a2 = 0.3561 + b1 = 0.4955 + b2 = 0.08309 + c0 = 0.02914 + c1 = 0.1122 + c2 = 0.004616 + d1 = 63.9 + + dUdT = ( + a0 * sto + + c0 + + a2 * exp(-((sto - b2) ** 2) / c2) + + a1 * (tanh(d1 * (sto - (b1 - c1))) - tanh(d1 * (sto - (b1 + c1)))) + ) / 1000 # fit in mV / K + + return dUdT + +def nmc_LGM50_electronic_conductivity_ORegan2022(T): + """ + Positive electrode electronic conductivity as a function of the temperature from + [1]. + + References + ---------- + .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma + Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion + cylindrical battery." Electrochimica Acta 425 (2022): 140700 + + Parameters + ---------- + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Thermal conductivity + """ + + E_r = 3.5e3 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + sigma = 0.8473 * arrhenius + + return sigma + +def nmc_LGM50_diffusivity_ORegan2022(sto, T): + """ + NMC diffusivity as a function of stoichiometry, in this case the + diffusivity is taken to be a constant. The value is taken from [1]. + + References + ---------- + .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma + Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion + cylindrical battery." Electrochimica Acta 425 (2022): 140700 + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + a1 = -0.9231 + a2 = -0.4066 + a3 = -0.993 + b1 = 0.3216 + b2 = 0.4532 + b3 = 0.8098 + c0 = -13.96 + c1 = 0.002534 + c2 = 0.003926 + c3 = 0.09924 + d = 1449 + + D_ref = ( + 10 + ** ( + c0 + + a1 * exp(-((sto - b1) ** 2) / c1) + + a2 * exp(-((sto - b2) ** 2) / c2) + + a3 * exp(-((sto - b3) ** 2) / c3) + ) + * 2.7 # correcting factor (see O'Regan et al 2021) + ) + + E_D_s = d * constants.R + arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + + return D_ref * arrhenius + +def nmc_LGM50_ocp_Chen2020(sto): + """ + LG M50 NMC open-circuit potential as a function of stoichiometry. The fit is + taken from [1]. + + References + ---------- + .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the + Electrochemical Society 167 (2020): 080534. + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + + Returns + ------- + :class:`pybamm.Symbol` + Open-circuit potential + """ + + U = ( + -0.809 * sto + + 4.4875 + - 0.0428 * tanh(18.5138 * (sto - 0.5542)) + - 17.7326 * tanh(15.789 * (sto - 0.3117)) + + 17.5842 * tanh(15.9308 * (sto - 0.312)) + ) + + return U + +def nmc_LGM50_electrolyte_exchange_current_density_ORegan2022( + c_e, c_s_surf, c_s_max, T +): + """ + Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in + EC:DMC. + + References + ---------- + .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma + Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion + cylindrical battery." Electrochimica Acta 425 (2022): 140700 + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + i_ref = 5.028 # (A/m2) + alpha = 0.43 + E_r = 2.401e4 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + c_e_ref = Parameter("Typical electrolyte concentration [mol.m-3]") + + return ( + i_ref + * arrhenius + * (c_e / c_e_ref) ** (1 - alpha) + * (c_s_surf / c_s_max) ** alpha + * (1 - c_s_surf / c_s_max) ** (1 - alpha) + ) + +def nmc_LGM50_heat_capacity_ORegan2022(T): + """ + Wet positive electrode specific heat capacity as a function of the temperature from + [1]. + + References + ---------- + .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma + Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion + cylindrical battery." Electrochimica Acta 425 (2022): 140700 + + Parameters + ---------- + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Specific heat capacity + """ + + # value for the dry porous electrode (i.e. electrode + air, and we neglect the air + # contribution to density) + cp_dry = -8.414e-4 * T**3 + 0.7892 * T**2 - 241.3 * T + 2.508e4 + rho_dry = 3270 + theta_dry = rho_dry * cp_dry + + # value for the bulk electrolyte + rho_e = 1280 + cp_e = 229 + eps_e = Parameter("Positive electrode porosity") + theta_e = rho_e * cp_e + + # value for the wet separator + theta_wet = theta_dry + theta_e * eps_e + rho_wet = rho_dry + rho_e * eps_e + cp_wet = theta_wet / rho_wet + + return cp_wet + +def nmc_LGM50_thermal_conductivity_ORegan2022(T): + """ + Wet positive electrode thermal conductivity as a function of the temperature from + [1]. + + References + ---------- + .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma + Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion + cylindrical battery." Electrochimica Acta 425 (2022): 140700 + + Parameters + ---------- + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Thermal conductivity + """ + + lambda_wet = 2.063e-5 * T**2 - 0.01127 * T + 2.331 + + return lambda_wet + +def nmc_LGM50_entropic_change_ORegan2022(sto, c_s_max): + """ + LG M50 NMC 811 entropic change in open circuit potential (OCP) at a temperature of + 298.15K as a function of the stochiometry. The fit is taken from [1]. + + References + ---------- + .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma + Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion + cylindrical battery." Electrochimica Acta 425 (2022): 140700 + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + + Returns + ------- + :class:`pybamm.Symbol` + Entropic change [V.K-1] + """ + a1 = 0.04006 + a2 = -0.06656 + b1 = 0.2828 + b2 = 0.8032 + c1 = 0.0009855 + c2 = 0.02179 + + dUdT = ( + a1 * exp(-((sto - b1) ** 2) / c1) + a2 * exp(-((sto - b2) ** 2) / c2) + ) / 1000 + # fit in mV / K + + return dUdT + +def separator_LGM50_heat_capacity_ORegan2022(T): + """ + Wet separator specific heat capacity as a function of the temperature from [1]. + + References + ---------- + .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma + Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion + cylindrical battery." Electrochimica Acta 425 (2022): 140700 + + Parameters + ---------- + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Specific heat capacity + """ + + # value for the dry porous separator (i.e. separator + air, and we neglect the air + # contribution to density) + cp_dry = 1.494e-3 * T**3 - 1.444 * T**2 + 475.5 * T - 5.13e4 + rho_dry = 946 + theta_dry = rho_dry * cp_dry + + # value for the bulk electrolyte + rho_e = 1280 + cp_e = 229 + eps_e = Parameter("Separator porosity") + theta_e = rho_e * cp_e + + # value for the wet separator + theta_wet = theta_dry + theta_e * eps_e + rho_wet = rho_dry + rho_e * eps_e + cp_wet = theta_wet / rho_wet + + return cp_wet + +def electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019(c_e, T): + """ + Transference number of LiPF6 in EC:EMC (3:7 w:w) as a function of ion + concentration and temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte transference number + """ + coeffs = np.array( + [ + -1.28e1, + -6.12, + 8.21e-2, + 9.04e-1, + 3.18e-2, + -1.27e-4, + 1.75e-2, + -3.12e-3, + -3.96e-5, + ] + ) + + return electrolyte_transference_number_base_Landesfeind2019(c_e, T, coeffs) + +def electrolyte_TDF_EC_EMC_3_7_Landesfeind2019(c_e, T): + """ + Thermodynamic factor (TDF) of LiPF6 in EC:EMC (3:7 w:w) as a function of ion + concentration and temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte thermodynamic factor + """ + coeffs = np.array( + [2.57e1, -4.51e1, -1.77e-1, 1.94, 2.95e-1, 3.08e-4, 2.59e-1, -9.46e-3, -4.54e-4] + ) + + return electrolyte_TDF_base_Landesfeind2019(c_e, T, coeffs) + +def electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019(c_e, T): + """ + Diffusivity of LiPF6 in EC:EMC (3:7 w:w) as a function of ion concentration and + temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte diffusivity + """ + coeffs = np.array([1.01e3, 1.01, -1.56e3, -4.87e2]) + + return electrolyte_diffusivity_base_Landesfeind2019(c_e, T, coeffs) + +def electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019(c_e, T): + """ + Conductivity of LiPF6 in EC:EMC (3:7 w:w) as a function of ion concentration and + temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte conductivity + """ + coeffs = np.array([5.21e-1, 2.28e2, -1.06, 3.53e-1, -3.59e-3, 1.48e-3]) + + return electrolyte_conductivity_base_Landesfeind2019(c_e, T, coeffs) + +def get_parameter_values(): + return {'1 + dlnf/dlnc': electrolyte_TDF_EC_EMC_3_7_Landesfeind2019, + 'Ambient temperature [K]': 298.15, + 'Cation transference number': electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019, + 'Cell cooling surface area [m2]': 0.00531, + 'Cell volume [m3]': 2.42e-05, + 'Current function [A]': 5.0, + 'Electrode height [m]': 0.065, + 'Electrode width [m]': 1.58, + 'Electrolyte conductivity [S.m-1]': electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019, + 'Electrolyte diffusivity [m2.s-1]': electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019, + 'Initial concentration in electrolyte [mol.m-3]': 1000.0, + 'Initial concentration in negative electrode [mol.m-3]': 28866.0, + 'Initial concentration in positive electrode [mol.m-3]': 13975.0, + 'Initial temperature [K]': 298.15, + 'Lower voltage cut-off [V]': 2.5, + 'Maximum concentration in negative electrode [mol.m-3]': 29583.0, + 'Maximum concentration in positive electrode [mol.m-3]': 51765.0, + 'Negative current collector conductivity [S.m-1]': 58411000.0, + 'Negative current collector density [kg.m-3]': 8933.0, + 'Negative current collector specific heat capacity [J.kg-1.K-1]': copper_heat_capacity_CRC, + 'Negative current collector thermal conductivity [W.m-1.K-1]': copper_thermal_conductivity_CRC, + 'Negative current collector thickness [m]': 1.2e-05, + 'Negative electrode Bruggeman coefficient (electrode)': 0.0, + 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5, + 'Negative electrode OCP [V]': graphite_LGM50_ocp_Chen2020, + 'Negative electrode OCP entropic change [V.K-1]': graphite_LGM50_entropic_change_ORegan2022, + 'Negative electrode active material volume fraction': 0.75, + 'Negative electrode cation signed stoichiometry': -1.0, + 'Negative electrode charge transfer coefficient': 0.5, + 'Negative electrode conductivity [S.m-1]': 215.0, + 'Negative electrode density [kg.m-3]': 2060.0, + 'Negative electrode diffusivity [m2.s-1]': graphite_LGM50_diffusivity_ORegan2022, + 'Negative electrode double-layer capacity [F.m-2]': 0.2, + 'Negative electrode electrons in reaction': 1.0, + 'Negative electrode exchange-current density [A.m-2]': graphite_LGM50_electrolyte_exchange_current_density_ORegan2022, + 'Negative electrode porosity': 0.25, + 'Negative electrode specific heat capacity [J.kg-1.K-1]': graphite_LGM50_heat_capacity_ORegan2022, + 'Negative electrode thermal conductivity [W.m-1.K-1]': graphite_LGM50_thermal_conductivity_ORegan2022, + 'Negative electrode thickness [m]': 8.52e-05, + 'Negative particle radius [m]': 5.86e-06, + 'Nominal cell capacity [A.h]': 5.0, + 'Number of cells connected in series to make a battery': 1.0, + 'Number of electrodes connected in parallel to make a cell': 1.0, + 'Positive current collector conductivity [S.m-1]': 36914000.0, + 'Positive current collector density [kg.m-3]': 2702.0, + 'Positive current collector specific heat capacity [J.kg-1.K-1]': aluminium_heat_capacity_CRC, + 'Positive current collector thermal conductivity [W.m-1.K-1]': 237.0, + 'Positive current collector thickness [m]': 1.6e-05, + 'Positive electrode Bruggeman coefficient (electrode)': 0.0, + 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5, + 'Positive electrode OCP [V]': nmc_LGM50_ocp_Chen2020, + 'Positive electrode OCP entropic change [V.K-1]': nmc_LGM50_entropic_change_ORegan2022, + 'Positive electrode active material volume fraction': 0.665, + 'Positive electrode cation signed stoichiometry': -1.0, + 'Positive electrode charge transfer coefficient': 0.5, + 'Positive electrode conductivity [S.m-1]': nmc_LGM50_electronic_conductivity_ORegan2022, + 'Positive electrode density [kg.m-3]': 3699.0, + 'Positive electrode diffusivity [m2.s-1]': nmc_LGM50_diffusivity_ORegan2022, + 'Positive electrode double-layer capacity [F.m-2]': 0.2, + 'Positive electrode electrons in reaction': 1.0, + 'Positive electrode exchange-current density [A.m-2]': nmc_LGM50_electrolyte_exchange_current_density_ORegan2022, + 'Positive electrode porosity': 0.335, + 'Positive electrode specific heat capacity [J.kg-1.K-1]': nmc_LGM50_heat_capacity_ORegan2022, + 'Positive electrode thermal conductivity [W.m-1.K-1]': nmc_LGM50_thermal_conductivity_ORegan2022, + 'Positive electrode thickness [m]': 7.56e-05, + 'Positive particle radius [m]': 5.22e-06, + 'Reference OCP vs SHE in the negative electrode [V]': nan, + 'Reference OCP vs SHE in the positive electrode [V]': nan, + 'Reference temperature [K]': 298.15, + 'Separator Bruggeman coefficient (electrode)': 1.5, + 'Separator Bruggeman coefficient (electrolyte)': 1.5, + 'Separator density [kg.m-3]': 1548.0, + 'Separator porosity': 0.47, + 'Separator specific heat capacity [J.kg-1.K-1]': separator_LGM50_heat_capacity_ORegan2022, + 'Separator thermal conductivity [W.m-1.K-1]': 0.3344, + 'Separator thickness [m]': 1.2e-05, + 'Total heat transfer coefficient [W.m-2.K-1]': 10.0, + 'Typical current [A]': 5.0, + 'Typical electrolyte concentration [mol.m-3]': 1000.0, + 'Upper voltage cut-off [V]': 4.4} \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Prada2013.py b/pybamm/input/parameters/lithium_ion/Prada2013.py new file mode 100644 index 0000000000..8028dea4a5 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/Prada2013.py @@ -0,0 +1,273 @@ +def graphite_LGM50_ocp_Chen2020(sto): + """ + LG M50 Graphite open-circuit potential as a function of stochiometry, fit taken + from [1]. + + References + ---------- + .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the + Electrochemical Society 167 (2020): 080534. + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + + Returns + ------- + :class:`pybamm.Symbol` + Open circuit potential + """ + + u_eq = ( + 1.9793 * exp(-39.3631 * sto) + + 0.2482 + - 0.0909 * tanh(29.8538 * (sto - 0.1234)) + - 0.04478 * tanh(14.9159 * (sto - 0.2769)) + - 0.0205 * tanh(30.4444 * (sto - 0.6103)) + ) + + return u_eq + +def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( + c_e, c_s_surf, c_s_max, T +): + """ + Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in + EC:DMC. + + References + ---------- + .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the + Electrochemical Society 167 (2020): 080534. + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + m_ref = 6.48e-7 # (A/m2)(mol/m3)**1.5 - includes ref concentrations + E_r = 35000 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + return ( + m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + ) + +def LFP_ocp_ashfar2017(sto): + """ + Open-circuit potential for LFP + + References + ---------- + .. [1] Afshar, S., Morris, K., & Khajepour, A. (2017). Efficient electrochemical + model for lithium-ion cells. arXiv preprint arXiv:1709.03970. + + Parameters + ---------- + sto : :class:`pybamm.Symbol` + Stochiometry of material (li-fraction) + + """ + + c1 = -150 * sto + c2 = -30 * (1 - sto) + k = 3.4077 - 0.020269 * sto + 0.5 * exp(c1) - 0.9 * exp(c2) + + return k + +def LFP_electrolyte_exchange_current_density_kashkooli2017(c_e, c_s_surf, c_s_max, T): + """ + Exchange-current density for Butler-Volmer reactions between LFP and electrolyte + + References + ---------- + .. [1] Kashkooli, A. G., Amirfazli, A., Farhad, S., Lee, D. U., Felicelli, S., Park, + H. W., ... & Chen, Z. (2017). Representative volume element model of lithium-ion + battery electrodes based on X-ray nano-tomography. Journal of Applied + Electrochemistry, 47(3), 281-293. + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + + m_ref = 6 * 10 ** (-7) # (A/m2)(mol/m3)**1.5 - includes ref concentrations + E_r = 39570 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + return ( + m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + ) + +def electrolyte_diffusivity_Nyman2008(c_e, T): + """ + Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data + comes from [1] + + References + ---------- + .. [1] A. Nyman, M. Behm, and G. Lindbergh, "Electrochemical characterisation and + modelling of the mass transport phenomena in LiPF6-EC-EMC electrolyte," + Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + D_c_e = 8.794e-11 * (c_e / 1000) ** 2 - 3.972e-10 * (c_e / 1000) + 4.862e-10 + + # Nyman et al. (2008) does not provide temperature dependence + + return D_c_e + +def electrolyte_conductivity_Nyman2008(c_e, T): + """ + Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data + comes from [1]. + + References + ---------- + .. [1] A. Nyman, M. Behm, and G. Lindbergh, "Electrochemical characterisation and + modelling of the mass transport phenomena in LiPF6-EC-EMC electrolyte," + Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + sigma_e = ( + 0.1297 * (c_e / 1000) ** 3 - 2.51 * (c_e / 1000) ** 1.5 + 3.329 * (c_e / 1000) + ) + + # Nyman et al. (2008) does not provide temperature dependence + + return sigma_e + +def get_parameter_values(): + return {'1 + dlnf/dlnc': 1.0, + 'Ambient temperature [K]': 298.15, + 'Cation transference number': 0.2594, + 'Current function [A]': 1.1, + 'Electrode height [m]': 0.0649, + 'Electrode width [m]': 1.78, + 'Electrolyte conductivity [S.m-1]': electrolyte_conductivity_Nyman2008, + 'Electrolyte diffusivity [m2.s-1]': electrolyte_diffusivity_Nyman2008, + 'Heat transfer coefficient [W.m-2.K-1]': 10.0, + 'Initial concentration in electrolyte [mol.m-3]': 1000.0, + 'Initial concentration in negative electrode [mol.m-3]': 28831.45783, + 'Initial concentration in positive electrode [mol.m-3]': 35.3766672, + 'Initial temperature [K]': 298.15, + 'Lower voltage cut-off [V]': 2.0, + 'Maximum concentration in negative electrode [mol.m-3]': 33133.0, + 'Maximum concentration in positive electrode [mol.m-3]': 22806.0, + 'Negative current collector conductivity [S.m-1]': 58411000.0, + 'Negative current collector density [kg.m-3]': 8960.0, + 'Negative current collector specific heat capacity [J.kg-1.K-1]': 385.0, + 'Negative current collector thermal conductivity [W.m-1.K-1]': 401.0, + 'Negative current collector thickness [m]': 1e-05, + 'Negative electrode Bruggeman coefficient (electrode)': 1.5, + 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5, + 'Negative electrode OCP [V]': graphite_LGM50_ocp_Chen2020, + 'Negative electrode OCP entropic change [V.K-1]': 0.0, + 'Negative electrode active material volume fraction': 0.75, + 'Negative electrode cation signed stoichiometry': -1.0, + 'Negative electrode charge transfer coefficient': 0.5, + 'Negative electrode conductivity [S.m-1]': 215.0, + 'Negative electrode density [kg.m-3]': 1657.0, + 'Negative electrode diffusivity [m2.s-1]': 3.3e-14, + 'Negative electrode double-layer capacity [F.m-2]': 0.2, + 'Negative electrode electrons in reaction': 1.0, + 'Negative electrode exchange-current density [A.m-2]': graphite_LGM50_electrolyte_exchange_current_density_Chen2020, + 'Negative electrode porosity': 0.25, + 'Negative electrode specific heat capacity [J.kg-1.K-1]': 700.0, + 'Negative electrode thermal conductivity [W.m-1.K-1]': 1.7, + 'Negative electrode thickness [m]': 3.6e-05, + 'Negative particle radius [m]': 5.86e-06, + 'Negative tab centre y-coordinate [m]': 0.06, + 'Negative tab centre z-coordinate [m]': 0.137, + 'Negative tab width [m]': 0.04, + 'Nominal cell capacity [A.h]': 1.1, + 'Number of cells connected in series to make a battery': 1.0, + 'Number of electrodes connected in parallel to make a cell': 1.0, + 'Positive current collector conductivity [S.m-1]': 36914000.0, + 'Positive current collector density [kg.m-3]': 2700.0, + 'Positive current collector specific heat capacity [J.kg-1.K-1]': 897.0, + 'Positive current collector thermal conductivity [W.m-1.K-1]': 237.0, + 'Positive current collector thickness [m]': 1.9e-05, + 'Positive electrode Bruggeman coefficient (electrode)': 1.5, + 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5, + 'Positive electrode OCP [V]': LFP_ocp_ashfar2017, + 'Positive electrode OCP entropic change [V.K-1]': 0.0, + 'Positive electrode active material volume fraction': 0.28485556, + 'Positive electrode cation signed stoichiometry': -1.0, + 'Positive electrode charge transfer coefficient': 0.5, + 'Positive electrode conductivity [S.m-1]': 0.33795074, + 'Positive electrode density [kg.m-3]': 2341.17, + 'Positive electrode diffusivity [m2.s-1]': 5.9e-18, + 'Positive electrode double-layer capacity [F.m-2]': 0.2, + 'Positive electrode electrons in reaction': 1.0, + 'Positive electrode exchange-current density [A.m-2]': LFP_electrolyte_exchange_current_density_kashkooli2017, + 'Positive electrode porosity': 0.12728395, + 'Positive electrode specific heat capacity [J.kg-1.K-1]': 1100.0, + 'Positive electrode thermal conductivity [W.m-1.K-1]': 2.1, + 'Positive electrode thickness [m]': 8.1e-05, + 'Positive particle radius [m]': 1e-08, + 'Positive tab centre y-coordinate [m]': 0.147, + 'Positive tab centre z-coordinate [m]': 0.137, + 'Positive tab width [m]': 0.04, + 'Reference temperature [K]': 298.15, + 'Separator Bruggeman coefficient (electrolyte)': 1.5, + 'Separator density [kg.m-3]': 397.0, + 'Separator porosity': 0.47, + 'Separator specific heat capacity [J.kg-1.K-1]': 700.0, + 'Separator thermal conductivity [W.m-1.K-1]': 0.16, + 'Separator thickness [m]': 1.8e-05, + 'Typical current [A]': 1.1, + 'Typical electrolyte concentration [mol.m-3]': 1000.0, + 'Upper voltage cut-off [V]': 4.4} \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Ramadass2004.py b/pybamm/input/parameters/lithium_ion/Ramadass2004.py new file mode 100644 index 0000000000..989efab5b9 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/Ramadass2004.py @@ -0,0 +1,431 @@ +def graphite_mcmb2528_diffusivity_Dualfoil1998(sto, T): + """ + Graphite MCMB 2528 diffusivity as a function of stochiometry, in this case the + diffusivity is taken to be a constant. The value is taken from Dualfoil [1]. + + References + ---------- + .. [1] http://www.cchem.berkeley.edu/jsngrp/fortran.html + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + D_ref = 3.9 * 10 ** (-14) + E_D_s = 42770 + arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + + return D_ref * arrhenius + +def graphite_ocp_Ramadass2004(sto): + """ + Graphite Open Circuit Potential (OCP) as a function of the + stochiometry (theta?). The fit is taken from Ramadass 2004. + + References + ---------- + .. [1] P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko + N. Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." + (2004) + """ + + u_eq = ( + 0.7222 + + 0.1387 * sto + + 0.029 * (sto**0.5) + - 0.0172 / sto + + 0.0019 / (sto**1.5) + + 0.2808 * exp(0.9 - 15 * sto) + - 0.7984 * exp(0.4465 * sto - 0.4108) + ) + + return u_eq + +def graphite_electrolyte_exchange_current_density_Ramadass2004( + c_e, c_s_surf, c_s_max, T +): + """ + Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in + EC:DMC. + + References + ---------- + .. [1] P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko + N. Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." + (2004) + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + m_ref = 4.854 * 10 ** (-6) # (A/m2)(mol/m3)**1.5 + E_r = 37480 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + return ( + m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + ) + +def graphite_entropic_change_Moura2016(sto, c_s_max): + """ + Graphite entropic change in open circuit potential (OCP) at a temperature of + 298.15K as a function of the stochiometry taken from Scott Moura's FastDFN code + [1]. + + References + ---------- + .. [1] https://github.com/scott-moura/fastDFN + + Parameters + ---------- + sto : :class:`pybamm.Symbol` + Stochiometry of material (li-fraction) + + """ + du_dT = ( + -1.5 * (120.0 / c_s_max) * exp(-120 * sto) + + (0.0351 / (0.083 * c_s_max)) * ((cosh((sto - 0.286) / 0.083)) ** (-2)) + - (0.0045 / (0.119 * c_s_max)) * ((cosh((sto - 0.849) / 0.119)) ** (-2)) + - (0.035 / (0.05 * c_s_max)) * ((cosh((sto - 0.9233) / 0.05)) ** (-2)) + - (0.0147 / (0.034 * c_s_max)) * ((cosh((sto - 0.5) / 0.034)) ** (-2)) + - (0.102 / (0.142 * c_s_max)) * ((cosh((sto - 0.194) / 0.142)) ** (-2)) + - (0.022 / (0.0164 * c_s_max)) * ((cosh((sto - 0.9) / 0.0164)) ** (-2)) + - (0.011 / (0.0226 * c_s_max)) * ((cosh((sto - 0.124) / 0.0226)) ** (-2)) + + (0.0155 / (0.029 * c_s_max)) * ((cosh((sto - 0.105) / 0.029)) ** (-2)) + ) + + return du_dT + +def lico2_diffusivity_Ramadass2004(sto, T): + """ + LiCo2 diffusivity as a function of stochiometry, in this case the + diffusivity is taken to be a constant. The value is taken from Ramadass 2004. + + References + ---------- + .. [1] P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko + N. Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." + (2004) + + Parameters + ---------- + sto: :class:`pybamm.Symbol` + Electrode stochiometry + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + D_ref = 1 * 10 ** (-14) + E_D_s = 18550 + arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + + return D_ref * arrhenius + +def lico2_ocp_Ramadass2004(sto): + """ + Lithium Cobalt Oxide (LiCO2) Open Circuit Potential (OCP) as a a function of the + stochiometry. The fit is taken from Ramadass 2004. Stretch is considered the + overhang area negative electrode / area positive electrode, in Ramadass 2002. + + References + ---------- + .. [1] P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko + N. Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." + (2004) + + Parameters + ---------- + sto : :class:`pybamm.Symbol` + Stochiometry of material (li-fraction) + + """ + + stretch = 1.13 + sto = stretch * sto + + u_eq = ( + -4.656 + + 88.669 * (sto**2) + - 401.119 * (sto**4) + + 342.909 * (sto**6) + - 462.471 * (sto**8) + + 433.434 * (sto**10) + ) / ( + -1 + + 18.933 * (sto**2) + - 79.532 * (sto**4) + + 37.311 * (sto**6) + - 73.083 * (sto**8) + + 95.96 * (sto**10) + ) + + return u_eq + +def lico2_electrolyte_exchange_current_density_Ramadass2004(c_e, c_s_surf, c_s_max, T): + """ + Exchange-current density for Butler-Volmer reactions between lico2 and LiPF6 in + EC:DMC. + + References + ---------- + .. [1] P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko + N. Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." + (2004) + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + m_ref = 2.252 * 10 ** (-6) # (A/m2)(mol/m3)**1.5 + E_r = 39570 + arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + + return ( + m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + ) + +def lico2_entropic_change_Moura2016(sto, c_s_max): + """ + Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at + a temperature of 298.15K as a function of the stochiometry. The fit is taken + from Scott Moura's FastDFN code [1]. + + References + ---------- + .. [1] https://github.com/scott-moura/fastDFN + + Parameters + ---------- + sto : :class:`pybamm.Symbol` + Stochiometry of material (li-fraction) + """ + # Since the equation for LiCo2 from this ref. has the stretch factor, + # should this too? If not, the "bumps" in the OCV don't line up. + stretch = 1.062 + sto = stretch * sto + + du_dT = ( + 0.07645 * (-54.4806 / c_s_max) * ((1.0 / cosh(30.834 - 54.4806 * sto)) ** 2) + + 2.1581 * (-50.294 / c_s_max) * ((cosh(52.294 - 50.294 * sto)) ** (-2)) + + 0.14169 * (19.854 / c_s_max) * ((cosh(11.0923 - 19.8543 * sto)) ** (-2)) + - 0.2051 * (5.4888 / c_s_max) * ((cosh(1.4684 - 5.4888 * sto)) ** (-2)) + - (0.2531 / 0.1316 / c_s_max) * ((cosh((-sto + 0.56478) / 0.1316)) ** (-2)) + - (0.02167 / 0.006 / c_s_max) * ((cosh((sto - 0.525) / 0.006)) ** (-2)) + ) + + return du_dT + +def electrolyte_diffusivity_Ramadass2004(c_e, T): + """ + Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. + + References + ---------- + .. [1] P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko + N. Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." + (2004) + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + + D_c_e = 7.5e-10 + E_D_e = 37040 + arrhenius = exp(E_D_e / constants.R * (1 / 298.15 - 1 / T)) + + return D_c_e * arrhenius + +def electrolyte_conductivity_Ramadass2004(c_e, T): + """ + Conductivity of LiPF6 in EC:DMC as a function of ion concentration. + Concentration should be in dm3 in the function. + + References + ---------- + .. [1] P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko + N. Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." + (2004) + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Solid diffusivity + """ + # mol.m-3 to mol.dm-3, original function is likely in mS/cm + # The function is not in Arora 2000 as reported in Ramadass 2004 + + cm = 1e-6 * c_e # here it should be only 1e-3 + + sigma_e = ( + 4.1253 * (10 ** (-4)) + + 5.007 * cm + - 4.7212 * (10**3) * (cm**2) + + 1.5094 * (10**6) * (cm**3) + - 1.6018 * (10**8) * (cm**4) + ) * 1e3 # and here there should not be an exponent + + E_k_e = 34700 + arrhenius = exp(E_k_e / constants.R * (1 / 298.15 - 1 / T)) + + return sigma_e * arrhenius + +def get_parameter_values(): + return {'1 + dlnf/dlnc': 1.0, + 'Ambient temperature [K]': 298.15, + 'Bulk solvent concentration [mol.m-3]': 2636.0, + 'Cation transference number': 0.363, + 'Current function [A]': 1.0, + 'EC diffusivity [m2.s-1]': 2e-18, + 'EC initial concentration in electrolyte [mol.m-3]': 4541.0, + 'Edge heat transfer coefficient [W.m-2.K-1]': 0.3, + 'Electrode height [m]': 0.057, + 'Electrode width [m]': 1.060692, + 'Electrolyte conductivity [S.m-1]': electrolyte_conductivity_Ramadass2004, + 'Electrolyte diffusivity [m2.s-1]': electrolyte_diffusivity_Ramadass2004, + 'Initial concentration in electrolyte [mol.m-3]': 1000.0, + 'Initial concentration in negative electrode [mol.m-3]': 22610.7, + 'Initial concentration in positive electrode [mol.m-3]': 25777.5, + 'Initial inner SEI thickness [m]': 2.5e-09, + 'Initial outer SEI thickness [m]': 2.5e-09, + 'Initial temperature [K]': 298.15, + 'Inner SEI electron conductivity [S.m-1]': 8.95e-14, + 'Inner SEI lithium interstitial diffusivity [m2.s-1]': 1e-20, + 'Inner SEI open-circuit potential [V]': 0.1, + 'Inner SEI partial molar volume [m3.mol-1]': 9.585e-05, + 'Inner SEI reaction proportion': 0.5, + 'Lithium interstitial reference concentration [mol.m-3]': 15.0, + 'Lower voltage cut-off [V]': 2.8, + 'Maximum concentration in negative electrode [mol.m-3]': 30555.0, + 'Maximum concentration in positive electrode [mol.m-3]': 51555.0, + 'Negative current collector conductivity [S.m-1]': 59600000.0, + 'Negative current collector density [kg.m-3]': 8954.0, + 'Negative current collector specific heat capacity [J.kg-1.K-1]': 385.0, + 'Negative current collector surface heat transfer coefficient [W.m-2.K-1]': 0.0, + 'Negative current collector thermal conductivity [W.m-1.K-1]': 401.0, + 'Negative current collector thickness [m]': 1.7e-05, + 'Negative electrode Bruggeman coefficient (electrode)': 4.0, + 'Negative electrode Bruggeman coefficient (electrolyte)': 4.0, + 'Negative electrode OCP [V]': graphite_ocp_Ramadass2004, + 'Negative electrode OCP entropic change [V.K-1]': graphite_entropic_change_Moura2016, + 'Negative electrode active material volume fraction': 0.49, + 'Negative electrode cation signed stoichiometry': -1.0, + 'Negative electrode charge transfer coefficient': 0.5, + 'Negative electrode conductivity [S.m-1]': 100.0, + 'Negative electrode density [kg.m-3]': 1657.0, + 'Negative electrode diffusivity [m2.s-1]': graphite_mcmb2528_diffusivity_Dualfoil1998, + 'Negative electrode double-layer capacity [F.m-2]': 0.2, + 'Negative electrode electrons in reaction': 1.0, + 'Negative electrode exchange-current density [A.m-2]': graphite_electrolyte_exchange_current_density_Ramadass2004, + 'Negative electrode porosity': 0.485, + 'Negative electrode specific heat capacity [J.kg-1.K-1]': 700.0, + 'Negative electrode thermal conductivity [W.m-1.K-1]': 1.7, + 'Negative electrode thickness [m]': 8.8e-05, + 'Negative particle radius [m]': 2e-06, + 'Negative tab centre y-coordinate [m]': 0.06, + 'Negative tab centre z-coordinate [m]': 0.137, + 'Negative tab heat transfer coefficient [W.m-2.K-1]': 10.0, + 'Negative tab width [m]': 0.04, + 'Nominal cell capacity [A.h]': 1.0, + 'Number of cells connected in series to make a battery': 1.0, + 'Number of electrodes connected in parallel to make a cell': 1.0, + 'Outer SEI open-circuit potential [V]': 0.8, + 'Outer SEI partial molar volume [m3.mol-1]': 9.585e-05, + 'Outer SEI solvent diffusivity [m2.s-1]': 2.5000000000000002e-22, + 'Positive current collector conductivity [S.m-1]': 35500000.0, + 'Positive current collector density [kg.m-3]': 2707.0, + 'Positive current collector specific heat capacity [J.kg-1.K-1]': 897.0, + 'Positive current collector surface heat transfer coefficient [W.m-2.K-1]': 0.0, + 'Positive current collector thermal conductivity [W.m-1.K-1]': 237.0, + 'Positive current collector thickness [m]': 2.3e-05, + 'Positive electrode Bruggeman coefficient (electrode)': 4.0, + 'Positive electrode Bruggeman coefficient (electrolyte)': 4.0, + 'Positive electrode OCP [V]': lico2_ocp_Ramadass2004, + 'Positive electrode OCP entropic change [V.K-1]': lico2_entropic_change_Moura2016, + 'Positive electrode active material volume fraction': 0.59, + 'Positive electrode cation signed stoichiometry': -1.0, + 'Positive electrode charge transfer coefficient': 0.5, + 'Positive electrode conductivity [S.m-1]': 100.0, + 'Positive electrode density [kg.m-3]': 3262.0, + 'Positive electrode diffusivity [m2.s-1]': lico2_diffusivity_Ramadass2004, + 'Positive electrode double-layer capacity [F.m-2]': 0.2, + 'Positive electrode electrons in reaction': 1.0, + 'Positive electrode exchange-current density [A.m-2]': lico2_electrolyte_exchange_current_density_Ramadass2004, + 'Positive electrode porosity': 0.385, + 'Positive electrode specific heat capacity [J.kg-1.K-1]': 700.0, + 'Positive electrode thermal conductivity [W.m-1.K-1]': 2.1, + 'Positive electrode thickness [m]': 8e-05, + 'Positive particle radius [m]': 2e-06, + 'Positive tab centre y-coordinate [m]': 0.147, + 'Positive tab centre z-coordinate [m]': 0.137, + 'Positive tab heat transfer coefficient [W.m-2.K-1]': 10.0, + 'Positive tab width [m]': 0.04, + 'Ratio of lithium moles to SEI moles': 2.0, + 'Reference temperature [K]': 298.15, + 'SEI growth activation energy [J.mol-1]': 0.0, + 'SEI kinetic rate constant [m.s-1]': 1e-12, + 'SEI open-circuit potential [V]': 0.0, + 'SEI reaction exchange current density [A.m-2]': 1.5e-06, + 'SEI resistivity [Ohm.m]': 200000.0, + 'Separator Bruggeman coefficient (electrolyte)': 1.9804586773134945, + 'Separator density [kg.m-3]': 1017.0, + 'Separator porosity': 0.508, + 'Separator specific heat capacity [J.kg-1.K-1]': 1978.0, + 'Separator thermal conductivity [W.m-1.K-1]': 0.34, + 'Separator thickness [m]': 2.5e-05, + 'Typical current [A]': 1.0, + 'Typical electrolyte concentration [mol.m-3]': 1000.0, + 'Upper voltage cut-off [V]': 4.2} \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Xu2019.py b/pybamm/input/parameters/lithium_ion/Xu2019.py new file mode 100644 index 0000000000..89b80026b3 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/Xu2019.py @@ -0,0 +1,252 @@ +def li_metal_electrolyte_exchange_current_density_Xu2019(c_e, c_Li, T): + """ + Exchange-current density for Butler-Volmer reactions between li metal and LiPF6 in + EC:DMC. + + References + ---------- + .. [1] Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_Li : :class:`pybamm.Symbol` + Pure metal lithium concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + m_ref = 3.5e-8 * constants.F # (A/m2)(mol/m3) - includes ref concentrations + + return m_ref * c_Li**0.7 * c_e**0.3 + +def nmc_ocp_Xu2019(sto): + """ + Nickel Managanese Cobalt Oxide (NMC) Open Circuit Potential (OCP) as a + function of the stochiometry, from [1]. + + References + ---------- + .. [1] Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + Parameters + ---------- + sto : :class:`pybamm.Symbol` + Stochiometry of material (li-fraction) + + """ + + # Values from Mohtat2020, might be more accurate + u_eq = ( + 4.3452 + - 1.6518 * sto + + 1.6225 * (sto**2) + - 2.0843 * (sto**3) + + 3.5146 * (sto**4) + - 2.2166 * (sto**5) + - 0.5623e-4 * pybamm.exp(109.451 * sto - 100.006) + ) + + # # only valid in range ~(0.25,0.95) + # u_eq = ( + # 5744.862289 * sto ** 9 + # - 35520.41099 * sto ** 8 + # + 95714.29862 * sto ** 7 + # - 147364.5514 * sto ** 6 + # + 142718.3782 * sto ** 5 + # - 90095.81521 * sto ** 4 + # + 37061.41195 * sto ** 3 + # - 9578.599274 * sto ** 2 + # + 1409.309503 * sto + # - 85.31153081 + # - 0.0003 * pybamm.exp(7.657 * sto ** 115) + # ) + + return u_eq + +def nmc_electrolyte_exchange_current_density_Xu2019(c_e, c_s_surf, c_s_max, T): + """ + Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in + EC:DMC. + + References + ---------- + .. [1] Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + c_s_surf : :class:`pybamm.Symbol` + Particle concentration [mol.m-3] + c_s_max : :class:`pybamm.Symbol` + Maximum particle concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + """ + # assuming implicit correction of incorrect units from the paper + m_ref = 5.76e-11 * constants.F # (A/m2)(mol/m3)**1.5 - includes ref concentrations + + return m_ref * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + +def electrolyte_diffusivity_Valoen2005(c_e, T): + """ + Diffusivity of LiPF6 in EC:DMC as a function of ion concentration, from [1] (eqn 14) + + References + ---------- + .. [1] Valøen, Lars Ole, and Jan N. Reimers. "Transport properties of LiPF6-based + Li-ion battery electrolytes." Journal of The Electrochemical Society 152.5 (2005): + A882-A891. + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Dimensional electrolyte concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Dimensional temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Dimensional electrolyte diffusivity [m2.s-1] + """ + # mol/m3 to molar + c_e = c_e / 1000 + + T_g = 229 + 5 * c_e + D_0 = -4.43 - 54 / (T - T_g) + D_1 = -0.22 + + # cm2/s to m2/s + # note, in the Valoen paper, ln means log10, so its inverse is 10^x + return (10 ** (D_0 + D_1 * c_e)) * 1e-4 + +def electrolyte_conductivity_Valoen2005(c_e, T): + """ + Conductivity of LiPF6 in EC:DMC as a function of ion concentration, from [1] + (eqn 17) + + References + ---------- + .. [1] Valøen, Lars Ole, and Jan N. Reimers. "Transport properties of LiPF6-based + Li-ion battery electrolytes." Journal of The Electrochemical Society 152.5 (2005): + A882-A891. + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Dimensional electrolyte concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Dimensional temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Dimensional electrolyte conductivity [S.m-1] + """ + # mol/m3 to molar + c_e = c_e / 1000 + # mS/cm to S/m + return (1e-3 / 1e-2) * ( + c_e + * ( + (-10.5 + 0.0740 * T - 6.96e-5 * T**2) + + c_e * (0.668 - 0.0178 * T + 2.80e-5 * T**2) + + c_e**2 * (0.494 - 8.86e-4 * T) + ) + ** 2 + ) + +def get_parameter_values(): + return {'1 + dlnf/dlnc': 1.0, + 'Ambient temperature [K]': 298.15, + 'Bulk solvent concentration [mol.m-3]': 2636.0, + 'Cation transference number': 0.38, + 'Current function [A]': 0.0024, + 'EC diffusivity [m2.s-1]': 2e-18, + 'EC initial concentration in electrolyte [mol.m-3]': 4541.0, + 'Electrode height [m]': 0.01, + 'Electrode width [m]': 0.0154, + 'Electrolyte conductivity [S.m-1]': electrolyte_conductivity_Valoen2005, + 'Electrolyte diffusivity [m2.s-1]': electrolyte_diffusivity_Valoen2005, + 'Exchange-current density for plating [A.m-2]': li_metal_electrolyte_exchange_current_density_Xu2019, + 'Heat transfer coefficient [W.m-2.K-1]': 10.0, + 'Initial concentration in electrolyte [mol.m-3]': 1000.0, + 'Initial concentration in positive electrode [mol.m-3]': 4631.0, + 'Initial inner SEI thickness [m]': 2.5e-09, + 'Initial outer SEI thickness [m]': 2.5e-09, + 'Initial temperature [K]': 298.15, + 'Inner SEI electron conductivity [S.m-1]': 8.95e-14, + 'Inner SEI lithium interstitial diffusivity [m2.s-1]': 1e-20, + 'Inner SEI open-circuit potential [V]': 0.1, + 'Inner SEI partial molar volume [m3.mol-1]': 9.585e-05, + 'Inner SEI reaction proportion': 0.5, + 'Lithium interstitial reference concentration [mol.m-3]': 15.0, + 'Lower voltage cut-off [V]': 3.5, + 'Maximum concentration in positive electrode [mol.m-3]': 48230.0, + 'Negative electrode OCP [V]': 0.0, + 'Negative electrode OCP entropic change [V.K-1]': 0.0, + 'Negative electrode cation signed stoichiometry': -1.0, + 'Negative electrode charge transfer coefficient': 0.5, + 'Negative electrode conductivity [S.m-1]': 10776000.0, + 'Negative electrode double-layer capacity [F.m-2]': 0.2, + 'Negative electrode electrons in reaction': 1.0, + 'Negative electrode reaction-driven LAM factor [m3.mol-1]': 0.0, + 'Negative electrode thickness [m]': 0.0007, + 'Nominal cell capacity [A.h]': 0.0024, + 'Number of cells connected in series to make a battery': 1.0, + 'Number of electrodes connected in parallel to make a cell': 1.0, + 'Outer SEI open-circuit potential [V]': 0.8, + 'Outer SEI partial molar volume [m3.mol-1]': 9.585e-05, + 'Outer SEI solvent diffusivity [m2.s-1]': 2.5000000000000002e-22, + 'Positive electrode Bruggeman coefficient (electrode)': 1.5, + 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5, + 'Positive electrode OCP [V]': nmc_ocp_Xu2019, + 'Positive electrode OCP entropic change [V.K-1]': 0.0, + 'Positive electrode active material volume fraction': 0.518, + 'Positive electrode cation signed stoichiometry': -1.0, + 'Positive electrode charge transfer coefficient': 0.5, + 'Positive electrode conductivity [S.m-1]': 100.0, + 'Positive electrode diffusivity [m2.s-1]': 1e-14, + 'Positive electrode double-layer capacity [F.m-2]': 0.2, + 'Positive electrode electrons in reaction': 1.0, + 'Positive electrode exchange-current density [A.m-2]': nmc_electrolyte_exchange_current_density_Xu2019, + 'Positive electrode porosity': 0.331, + 'Positive electrode reaction-driven LAM factor [m3.mol-1]': 0.0, + 'Positive electrode thickness [m]': 4.2e-05, + 'Positive particle radius [m]': 5.3e-06, + 'Ratio of lithium moles to SEI moles': 2.0, + 'Reference temperature [K]': 298.15, + 'SEI growth activation energy [J.mol-1]': 0.0, + 'SEI kinetic rate constant [m.s-1]': 1e-12, + 'SEI open-circuit potential [V]': 0.4, + 'SEI reaction exchange current density [A.m-2]': 1.5e-07, + 'SEI resistivity [Ohm.m]': 200000.0, + 'Separator Bruggeman coefficient (electrode)': 1.5, + 'Separator Bruggeman coefficient (electrolyte)': 1.5, + 'Separator porosity': 0.39, + 'Separator thickness [m]': 2.5e-05, + 'Typical current [A]': 0.0024, + 'Typical electrolyte concentration [mol.m-3]': 1000.0, + 'Typical plated lithium concentration [mol.m-3]': 76900.0, + 'Upper voltage cut-off [V]': 4.2} \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/parameters.ipynb b/pybamm/input/parameters/lithium_ion/parameters.ipynb new file mode 100644 index 0000000000..643910afce --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/parameters.ipynb @@ -0,0 +1,106 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'/Users/vsulzer/Documents/Energy_storage/PyBaMM'" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pybamm.ABSOLUTE_PATH" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "import pybamm\n", + "import os\n", + "import inspect\n", + "from pprint import pformat\n" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "all_parameter_sets = [\n", + " x\n", + " for x in dir(pybamm.parameter_sets)\n", + " if not x.startswith(\"__\") and x not in [\"Sulzer2019\"]\n", + "]\n", + "\n", + "for name in all_parameter_sets:\n", + " parameter_values = dict(pybamm.ParameterValues(name))\n", + " filename = pybamm.ABSOLUTE_PATH + f\"/pybamm/input/parameters/lithium_ion/{name}.py\"\n", + "\n", + " output = \"\"\n", + " for k,v in parameter_values.items():\n", + " if callable(v):\n", + " parameter_values[k] = v.__name__\n", + " output += inspect.getsource(v) + \"\\n\"\n", + "\n", + " # Format parameter dictionary\n", + " param_dict = pformat(parameter_values)\n", + " \n", + " # Make it a function\n", + " param_dict = param_dict.replace(\"{\", \"def get_parameter_values():\\n return {\")\n", + " # Replace : 'function_name', with : function_name,\n", + " param_dict = param_dict.replace(\"': '\", \"': \").replace(\"',\", \",\")\n", + " \n", + " output += param_dict\n", + " with open(filename, \"w\") as f:\n", + " f.write(output)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.9.13 ('conda_jl')", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.13" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "612adcc456652826e82b485a1edaef831aa6d5abc680d008e93d513dd8724f14" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 4d8c22982bdae923c1c44b0242d6f7d1170b9033 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Sat, 1 Oct 2022 14:38:13 -0400 Subject: [PATCH 02/28] #2334 working on loading new-style parameters --- examples/scripts/compare_lithium_ion.py | 6 ++-- .../parameters/lithium_ion/parameters.ipynb | 4 +++ pybamm/parameters/parameter_values.py | 29 ++++++++++++++----- pybamm/util.py | 16 ++++++---- 4 files changed, 39 insertions(+), 16 deletions(-) diff --git a/examples/scripts/compare_lithium_ion.py b/examples/scripts/compare_lithium_ion.py index 6108036b9b..eea0ac9cbd 100644 --- a/examples/scripts/compare_lithium_ion.py +++ b/examples/scripts/compare_lithium_ion.py @@ -8,9 +8,9 @@ # load models models = [ pybamm.lithium_ion.SPM(), - pybamm.lithium_ion.SPMe(), - pybamm.lithium_ion.DFN(), - pybamm.lithium_ion.NewmanTobias(), + # pybamm.lithium_ion.SPMe(), + # pybamm.lithium_ion.DFN(), + # pybamm.lithium_ion.NewmanTobias(), ] # create and run simulations diff --git a/pybamm/input/parameters/lithium_ion/parameters.ipynb b/pybamm/input/parameters/lithium_ion/parameters.ipynb index 643910afce..d6740df7ba 100644 --- a/pybamm/input/parameters/lithium_ion/parameters.ipynb +++ b/pybamm/input/parameters/lithium_ion/parameters.ipynb @@ -58,6 +58,10 @@ " # Format parameter dictionary\n", " param_dict = pformat(parameter_values)\n", " \n", + " # Add pybamm. to functions that didn't have it in function body before\n", + " for funcname in [\"exp\"]:\n", + " output.replace(f\" {funcname}\", f\" pybamm.{funcname}\")\n", + "\n", " # Make it a function\n", " param_dict = param_dict.replace(\"{\", \"def get_parameter_values():\\n return {\")\n", " # Replace : 'function_name', with : function_name,\n", diff --git a/pybamm/parameters/parameter_values.py b/pybamm/parameters/parameter_values.py index ac7073d4c3..6109717866 100644 --- a/pybamm/parameters/parameter_values.py +++ b/pybamm/parameters/parameter_values.py @@ -83,16 +83,31 @@ def __init__(self, values=None, chemistry=None): self.update_from_chemistry(chemistry) # Then update with values dictionary or file if values is not None: - if (isinstance(values, str) and hasattr(pybamm.parameter_sets, values)) or ( - isinstance(values, dict) and "chemistry" in values - ): + if isinstance(values, dict) and "chemistry" in values: self.update_from_chemistry(values) else: - # If base_parameters is a filename, load from that filename if isinstance(values, str): - file_path = self.find_parameter(values) - path = os.path.split(file_path)[0] - values = self.read_parameters_csv(file_path) + # Look for the values name in the standard pybamm parameter sets + found_parameter_set = False + parameter_sets_path = os.path.join( + pybamm.ABSOLUTE_PATH, "pybamm", "input", "parameters" + ) + for chemistry in ["lead_acid", "lithium_ion"]: + path = os.path.join(parameter_sets_path, chemistry) + filename = os.path.join(path, f"{values}.py") + if os.path.exists(filename): + # Use a function call to avoid issues with updating the + # dictionary in place later + func = pybamm.load_function( + filename, "get_parameter_values" + ) + values = func() + found_parameter_set = True + if not found_parameter_set: + # In this case it might be a filename, load from that filename + file_path = self.find_parameter(values) + path = os.path.split(file_path)[0] + values = self.read_parameters_csv(file_path) else: path = "" # Don't check parameter already exists when first creating it diff --git a/pybamm/util.py b/pybamm/util.py index e6b7c3e7aa..f23eb4eaac 100644 --- a/pybamm/util.py +++ b/pybamm/util.py @@ -212,7 +212,7 @@ def __eq__(self, other): return self.value == other.value -def load_function(filename): +def load_function(filename, funcname=None): """ Load a python function from an absolute or relative path using `importlib`. Example - pybamm.load_function("pybamm/input/example.py") @@ -221,19 +221,23 @@ def load_function(filename): --------- filename : str The path of the file containing the function. + funcname : str, optional + The name of the function in the file. If None, assumed to be the same as the + filename (ignoring the path) Returns ------- function The python function loaded from the file. """ + if funcname is None: + # Read funcname by splitting the file (assumes funcname is the same as filename) + _, funcname = os.path.split(filename) + # Remove `.py` from the file name if filename.endswith(".py"): filename = filename.replace(".py", "") - # Assign path to _ and filename to tail - _, tail = os.path.split(filename) - # Store the current working directory orig_dir = os.getcwd() @@ -260,13 +264,13 @@ def load_function(filename): path = root_path.replace("/", ".") path = path.replace("\\", ".") pybamm.logger.debug( - f"Importing function '{tail}' from file '{filename}' via path '{path}'" + f"Importing function '{funcname}' from file '{filename}' via path '{path}'" ) module_object = importlib.import_module(path) # Revert back current working directory if it was changed os.chdir(orig_dir) - return getattr(module_object, tail) + return getattr(module_object, funcname) def rmse(x, y): From 69324c57db70f77a5c1c9023a301e9a585a0d01f Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Mon, 3 Oct 2022 16:08:59 -0400 Subject: [PATCH 03/28] #2334 make printing python a method of ParameterValues --- examples/scripts/compare_lithium_ion.py | 8 +- parameters.py | 20 + .../input/parameters/lead_acid/Sulzer2019.py | 406 ++++++++++--- pybamm/input/parameters/lithium_ion/Ai2020.py | 550 ++++++------------ .../input/parameters/lithium_ion/Chen2020.py | 186 +++--- .../lithium_ion/Chen2020_composite.py | 306 +++++----- .../input/parameters/lithium_ion/Ecker2015.py | 339 +++++------ .../parameters/lithium_ion/Marquis2019.py | 304 +++++----- .../parameters/lithium_ion/Mohtat2020.py | 232 ++++---- .../parameters/lithium_ion/NCA_Kim2011.py | 305 +++++----- .../input/parameters/lithium_ion/OKane2022.py | 421 ++++++-------- .../parameters/lithium_ion/ORegan2022.py | 226 +++---- .../input/parameters/lithium_ion/Prada2013.py | 186 +++--- .../parameters/lithium_ion/Ramadass2004.py | 266 +++++---- pybamm/input/parameters/lithium_ion/Xu2019.py | 162 +++--- .../graphite_LGM50_ocp_Chen2020.csv | 238 ++++++++ .../lithium_ion/graphite_ocp_Ecker2015.csv | 41 ++ .../graphite_ocp_Enertech_Ai2020.csv | 125 ++++ .../lithium_ion/lico2_ocp_Ai2020.csv | 446 ++++++++++++++ ...easured_graphite_diffusivity_Ecker2015.csv | 23 + .../measured_nco_diffusivity_Ecker2015.csv | 15 + .../lithium_ion/nca_ocp_Kim2011_data.csv | 75 +++ .../lithium_ion/nco_ocp_Ecker2015.csv | 43 ++ .../parameters/lithium_ion/parameters.ipynb | 110 ---- pybamm/parameters/parameter_values.py | 102 +++- 25 files changed, 3001 insertions(+), 2134 deletions(-) create mode 100644 parameters.py create mode 100644 pybamm/input/parameters/lithium_ion/graphite_LGM50_ocp_Chen2020.csv create mode 100644 pybamm/input/parameters/lithium_ion/graphite_ocp_Ecker2015.csv create mode 100644 pybamm/input/parameters/lithium_ion/graphite_ocp_Enertech_Ai2020.csv create mode 100644 pybamm/input/parameters/lithium_ion/lico2_ocp_Ai2020.csv create mode 100644 pybamm/input/parameters/lithium_ion/measured_graphite_diffusivity_Ecker2015.csv create mode 100644 pybamm/input/parameters/lithium_ion/measured_nco_diffusivity_Ecker2015.csv create mode 100644 pybamm/input/parameters/lithium_ion/nca_ocp_Kim2011_data.csv create mode 100644 pybamm/input/parameters/lithium_ion/nco_ocp_Ecker2015.csv delete mode 100644 pybamm/input/parameters/lithium_ion/parameters.ipynb diff --git a/examples/scripts/compare_lithium_ion.py b/examples/scripts/compare_lithium_ion.py index eea0ac9cbd..c528cc67b4 100644 --- a/examples/scripts/compare_lithium_ion.py +++ b/examples/scripts/compare_lithium_ion.py @@ -8,15 +8,15 @@ # load models models = [ pybamm.lithium_ion.SPM(), - # pybamm.lithium_ion.SPMe(), - # pybamm.lithium_ion.DFN(), - # pybamm.lithium_ion.NewmanTobias(), + pybamm.lithium_ion.SPMe(), + pybamm.lithium_ion.DFN(), + pybamm.lithium_ion.NewmanTobias(), ] # create and run simulations sims = [] for model in models: - sim = pybamm.Simulation(model) + sim = pybamm.Simulation(model, parameter_values=pybamm.ParameterValues("Ai2020")) sim.solve([0, 3600]) sims.append(sim) diff --git a/parameters.py b/parameters.py new file mode 100644 index 0000000000..a7c37b4770 --- /dev/null +++ b/parameters.py @@ -0,0 +1,20 @@ +import pybamm +import numpy as np +import os +import inspect +from pprint import pformat + +all_parameter_sets = [x for x in dir(pybamm.parameter_sets) if not x.startswith("__")] + +for name in all_parameter_sets: + if name == "Sulzer2019": + relpath = "pybamm/input/parameters/lead_acid/" + else: + relpath = "pybamm/input/parameters/lithium_ion/" + parameter_values = pybamm.ParameterValues(getattr(pybamm.parameter_sets, name)) + parameter_values.print_as_python_script(name, path=relpath) + + # test that loading the parameter set works + pybamm.ParameterValues(name) + + print(f"{name}: ok") diff --git a/pybamm/input/parameters/lead_acid/Sulzer2019.py b/pybamm/input/parameters/lead_acid/Sulzer2019.py index 6aa42e34fe..8b024dadc2 100644 --- a/pybamm/input/parameters/lead_acid/Sulzer2019.py +++ b/pybamm/input/parameters/lead_acid/Sulzer2019.py @@ -1,122 +1,340 @@ +import pybamm + + +def lead_ocp_Bode1977(m): + """ + Dimensional open-circuit voltage in the negative (lead) electrode [V], from [1]_, + as a function of the molar mass m [mol.kg-1]. + + References + ---------- + .. [1] H Bode. Lead-acid batteries. John Wiley and Sons, Inc., New York, NY, 1977. + + """ + U = ( + -0.294 + - 0.074 * log10(m) + - 0.030 * log10(m) ** 2 + - 0.031 * log10(m) ** 3 + - 0.012 * log10(m) ** 4 + ) + return U + +def lead_exchange_current_density_Sulzer2019(c_e, T): + """ + Dimensional exchange-current density in the negative (lead) electrode, from [1]_ + + References + ---------- + .. [1] V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, + “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical + model.” + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + + """ + j0_ref = 0.06 # srinivasan2003mathematical + c_e_typ = pybamm.Parameter("Typical electrolyte concentration [mol.m-3]") + j0 = j0_ref * (c_e / c_e_typ) + + return j0 + +def lead_dioxide_ocp_Bode1977(m): + """ + Dimensional open-circuit voltage in the positive (lead-dioxide) electrode [V], + from [1]_, as a function of the molar mass m [mol.kg-1]. + + References + ---------- + .. [1] H Bode. Lead-acid batteries. John Wiley and Sons, Inc., New York, NY, 1977. + + """ + U = ( + 1.628 + + 0.074 * log10(m) + + 0.033 * log10(m) ** 2 + + 0.043 * log10(m) ** 3 + + 0.022 * log10(m) ** 4 + ) + return U + +def lead_dioxide_exchange_current_density_Sulzer2019(c_e, T): + """ + Dimensional exchange-current density in the positive electrode, from [1]_ + + References + ---------- + .. [1] V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, + “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical + model.” + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + + """ + c_ox = 0 + c_hy = 0 + param = LeadAcidParameters() + c_w_dim = (1 - c_e * param.V_e - c_ox * param.V_ox - c_hy * param.V_hy) / param.V_w + c_w_ref = (1 - param.c_e_typ * param.V_e) / param.V_w + c_w = c_w_dim / c_w_ref + + j0_ref = 0.004 # srinivasan2003mathematical + j0 = j0_ref * (c_e / param.c_e_typ) ** 2 * c_w + + return j0 + +def oxygen_exchange_current_density_Sulzer2019(c_e, T): + """ + Dimensional oxygen exchange-current density in the positive electrode, from [1]_ + + References + ---------- + .. [1] V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, + “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical + model.” + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + Electrolyte concentration [mol.m-3] + T : :class:`pybamm.Symbol` + Temperature [K] + + Returns + ------- + :class:`pybamm.Symbol` + Exchange-current density [A.m-2] + + """ + j0_ref = 2.5e-23 # srinivasan2003mathematical + c_e_typ = pybamm.Parameter("Typical electrolyte concentration [mol.m-3]") + j0 = j0_ref * (c_e / c_e_typ) + + return j0 + +def conductivity_Gu1997(c_e): + """ + Dimensional conductivity of sulfuric acid [S.m-1], from [1]_ citing [2]_ and + agreeing with data in [3]_, as a function of the electrolyte concentration + c_e [mol.m-3]. + + References + ---------- + .. [1] WB Gu, CY Wang, and BY Liaw. Numerical modeling of coupled electrochemical + and transport processes in lead-acid batteries. Journal of The + Electrochemical Society, 144(6):2053–2061, 1997. + .. [2] WH Tiedemann and J Newman. Battery design and optimization. Journal of + Electrochemical Society, Softbound Proceeding Series, Princeton, New York, + 79(1):23, 1979. + .. [3] TW Chapman and J Newman. Compilation of selected thermodynamic and transport + properties of binary electrolytes in aqueous solution. Technical report, + California Univ., Berkeley. Lawrence Radiation Lab., 1968. + + """ + return c_e * pybamm.exp(6.23 - 1.34e-4 * c_e - 1.61e-8 * c_e**2) * 1e-4 + +def darken_thermodynamic_factor_Chapman1968(c_e): + """ + Dimensional Darken thermodynamic factor of sulfuric acid, from data in + [1, 2]_, as a function of the electrolyte concentration c_e [mol.m-3]. + + References + ---------- + .. [1] TW Chapman and J Newman. Compilation of selected thermodynamic and transport + properties of binary electrolytes in aqueous solution. Technical report, + California Univ., Berkeley. Lawrence Radiation Lab., 1968. + .. [2] KS Pitzer, RN Roy, and LF Silvester. Thermodynamics of electrolytes. 7. + sulfuric acid. Journal of the American Chemical Society, 99(15):4930–4936, + 1977. + + """ + return 0.49 + 4.1e-4 * c_e + +def diffusivity_Gu1997(c_e): + """ + Dimensional Fickian diffusivity of sulfuric acid [m2.s-1], from [1]_ citing [2]_ + and agreeing with data in [3]_, as a function of the electrolyte concentration + c_e [mol.m-3]. + + References + ---------- + .. [1] WB Gu, CY Wang, and BY Liaw. Numerical modeling of coupled electrochemical + and transport processes in lead-acid batteries. Journal of The + Electrochemical Society, 144(6):2053–2061, 1997. + .. [2] WH Tiedemann and J Newman. Battery design and optimization. Journal of + Electrochemical Society, Softbound Proceeding Series, Princeton, New York, + 79(1):23, 1979. + .. [3] TW Chapman and J Newman. Compilation of selected thermodynamic and transport + properties of binary electrolytes in aqueous solution. Technical report, + California Univ., Berkeley. Lawrence Radiation Lab., 1968. + + """ + return (1.75 + 260e-6 * c_e) * 1e-9 + +def viscosity_Chapman1968(c_e): + """ + Dimensional viscosity of sulfuric acid [kg.m-1.s-1], from data in [1]_, as a + function of the electrolyte concentration c_e [mol.m-3]. + + References + ---------- + .. [1] TW Chapman and J Newman. Compilation of selected thermodynamic and transport + properties of binary electrolytes in aqueous solution. Technical report, + California Univ., Berkeley. Lawrence Radiation Lab., 1968. + + """ + return 0.89e-3 + 1.11e-7 * c_e + 3.29e-11 * c_e**2 + + def get_parameter_values(): return { - "1 + dlnf/dlnc": 1.0, - "Ambient temperature [K]": 294.85, - "Anion stoichiometry": 1.0, - "Cation stoichiometry": 1.0, - "Cation transference number": 0.7, - "Cell cooling surface area [m2]": 0.154, - "Cell volume [m3]": 0.00027, - "Current function [A]": 1.0, - "Darken thermodynamic factor": darken_thermodynamic_factor_Chapman1968, - "Edge heat transfer coefficient [W.m-2.K-1]": 0.3, - "Electrode height [m]": 0.114, - "Electrode width [m]": 0.065, - "Electrolyte conductivity [S.m-1]": conductivity_Gu1997, - "Electrolyte diffusivity [m2.s-1]": diffusivity_Gu1997, - "Electrolyte viscosity [kg.m-1.s-1]": viscosity_Chapman1968, - "Electrons in hydrogen reaction": 2.0, - "Electrons in oxygen reaction": 4.0, - "Hydrogen diffusivity [m2.s-1]": 4.5e-09, - "Hydrogen reference OCP vs SHE [V]": 0.0, - "Initial State of Charge": 1.0, - "Initial oxygen concentration [mol.m-3]": 0.0, - "Initial temperature [K]": 294.85, - "Lower voltage cut-off [V]": 1.75, + # Negative electrode + "Negative electrode thickness [m]": 0.0009, + "Negative electrode conductivity [S.m-1]": 4800000.0, + "Negative electrode pore size [m]": 1e-07, "Maximum porosity of negative electrode": 0.53, - "Maximum porosity of positive electrode": 0.57, - "Maximum porosity of separator": 0.92, - "Maximum temperature [K]": 333.15, - "Molar mass of anions [kg.mol-1]": 0.097, - "Molar mass of cations [kg.mol-1]": 0.001, - "Molar mass of hydrogen molecules [kg.mol-1]": 0.002, - "Molar mass of oxygen molecules [kg.mol-1]": 0.032, - "Molar mass of water [kg.mol-1]": 0.01801, - "Molar volume of lead [m3.mol-1]": 1.82539682539683e-05, - "Molar volume of lead sulfate [m3.mol-1]": 4.81717011128776e-05, - "Molar volume of lead-dioxide [m3.mol-1]": 2.54797441364606e-05, - "Negative current collector density [kg.m-3]": 11300.0, - "Negative current collector specific heat capacity [J.kg-1.K-1]": 130.0, - "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, - "Negative current collector thermal conductivity [W.m-1.K-1]": 35.0, - "Negative current collector thickness [m]": 0.0, - "Negative electrode Bruggeman coefficient (electrode)": 1.5, + "Negative electrode volumetric capacity [C.m-3]": 3473000000.0, + "Negative electrode open-circuit potential [V]": lead_ocp_Bode1977, + "Negative electrode surface area to volume ratio [m-1]": 2300000.0, "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, + "Negative electrode Bruggeman coefficient (electrode)": 1.5, + "Negative electrode morphological parameter": 0.6, "Negative electrode capacity [C.m-3]": 3473000000.0, "Negative electrode cation signed stoichiometry": 1.0, - "Negative electrode conductivity [S.m-1]": 4800000.0, - "Negative electrode density [kg.m-3]": 11300.0, - "Negative electrode double-layer capacity [F.m-2]": 0.2, "Negative electrode electrons in reaction": 2.0, "Negative electrode exchange-current density [A.m-2]": lead_exchange_current_density_Sulzer2019, - "Negative electrode morphological parameter": 0.6, - "Negative electrode open-circuit potential [V]": lead_ocp_Bode1977, - "Negative electrode pore size [m]": 1e-07, - "Negative electrode reference exchange-current density (hydrogen) [A.m-2]": 1.56e-11, "Negative electrode reference exchange-current density (oxygen) [A.m-2]": 2.5e-32, + "Negative electrode reference exchange-current density (hydrogen) [A.m-2]": 1.56e-11, + "Negative electrode double-layer capacity [F.m-2]": 0.2, + "Negative electrode density [kg.m-3]": 11300.0, "Negative electrode specific heat capacity [J.kg-1.K-1]": 130.0, - "Negative electrode surface area to volume ratio [m-1]": 2300000.0, "Negative electrode thermal conductivity [W.m-1.K-1]": 35.0, - "Negative electrode thickness [m]": 0.0009, - "Negative electrode volumetric capacity [C.m-3]": 3473000000.0, - "Negative tab centre y-coordinate [m]": 0.06, - "Negative tab centre z-coordinate [m]": 0.114, - "Negative tab heat transfer coefficient [W.m-2.K-1]": 10.0, - "Negative tab width [m]": 0.04, - "Nominal cell capacity [A.h]": 17.0, - "Number of cells connected in series to make a battery": 6.0, - "Number of electrodes connected in parallel to make a cell": 8.0, - "Oxygen diffusivity [m2.s-1]": 2.1e-09, - "Oxygen reference OCP vs SHE [V]": 1.229, - "Partial molar volume of anions [m3.mol-1]": 3.15e-05, - "Partial molar volume of cations [m3.mol-1]": 1.35e-05, - "Partial molar volume of hydrogen molecules [m3.mol-1]": 2.31e-05, - "Partial molar volume of oxygen molecules [m3.mol-1]": 3.21e-05, - "Partial molar volume of water [m3.mol-1]": 1.75e-05, - "Positive current collector density [kg.m-3]": 9375.0, - "Positive current collector specific heat capacity [J.kg-1.K-1]": 256.0, - "Positive current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, - "Positive current collector thermal conductivity [W.m-1.K-1]": 35.0, - "Positive current collector thickness [m]": 0.0, - "Positive electrode Bruggeman coefficient (electrode)": 1.5, + # Separator + "Separator thickness [m]": 0.0015, + "Maximum porosity of separator": 0.92, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator density [kg.m-3]": 1680.0, + "Separator specific heat capacity [J.kg-1.K-1]": 700.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.04, + # Positive electrode + "Positive electrode thickness [m]": 0.00125, + "Positive electrode conductivity [S.m-1]": 80000.0, + "Positive electrode pore size [m]": 1e-07, + "Maximum porosity of positive electrode": 0.57, + "Positive electrode volumetric capacity [C.m-3]": 2745000000.0, + "Positive electrode open-circuit potential [V]": lead_dioxide_ocp_Bode1977, + "Positive electrode surface area to volume ratio [m-1]": 23000000.0, "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, + "Positive electrode Bruggeman coefficient (electrode)": 1.5, + "Positive electrode morphological parameter": 0.6, "Positive electrode capacity [C.m-3]": 2745000000.0, "Positive electrode cation signed stoichiometry": 3.0, - "Positive electrode conductivity [S.m-1]": 80000.0, - "Positive electrode density [kg.m-3]": 9375.0, - "Positive electrode double-layer capacity [F.m-2]": 0.2, "Positive electrode electrons in reaction": 2.0, "Positive electrode exchange-current density [A.m-2]": lead_dioxide_exchange_current_density_Sulzer2019, - "Positive electrode morphological parameter": 0.6, - "Positive electrode open-circuit potential [V]": lead_dioxide_ocp_Bode1977, "Positive electrode oxygen exchange-current density [A.m-2]": oxygen_exchange_current_density_Sulzer2019, - "Positive electrode pore size [m]": 1e-07, "Positive electrode reference exchange-current density (hydrogen) [A.m-2]": 0.0, + "Positive electrode double-layer capacity [F.m-2]": 0.2, + "Positive electrode density [kg.m-3]": 9375.0, "Positive electrode specific heat capacity [J.kg-1.K-1]": 256.0, - "Positive electrode surface area to volume ratio [m-1]": 23000000.0, "Positive electrode thermal conductivity [W.m-1.K-1]": 35.0, - "Positive electrode thickness [m]": 0.00125, - "Positive electrode volumetric capacity [C.m-3]": 2745000000.0, + # Other + "Negative current collector thickness [m]": 0.0, + "Positive current collector thickness [m]": 0.0, + "Electrode height [m]": 0.114, + "Electrode width [m]": 0.065, + "Negative tab width [m]": 0.04, + "Negative tab centre y-coordinate [m]": 0.06, + "Negative tab centre z-coordinate [m]": 0.114, + "Positive tab width [m]": 0.04, "Positive tab centre y-coordinate [m]": 0.147, "Positive tab centre z-coordinate [m]": 0.114, - "Positive tab heat transfer coefficient [W.m-2.K-1]": 10.0, - "Positive tab width [m]": 0.04, + "Cell cooling surface area [m2]": 0.154, + "Cell volume [m3]": 0.00027, + "Nominal cell capacity [A.h]": 17.0, + "Typical current [A]": 1.0, + "Current function [A]": 1.0, + "Negative current collector density [kg.m-3]": 11300.0, + "Positive current collector density [kg.m-3]": 9375.0, + "Negative current collector specific heat capacity [J.kg-1.K-1]": 130.0, + "Positive current collector specific heat capacity [J.kg-1.K-1]": 256.0, + "Negative current collector thermal conductivity [W.m-1.K-1]": 35.0, + "Positive current collector thermal conductivity [W.m-1.K-1]": 35.0, + "Molar volume of lead [m3.mol-1]": 1.82539682539683e-05, + "Molar volume of lead sulfate [m3.mol-1]": 4.81717011128776e-05, + "Signed stoichiometry of cations (oxygen reaction)": 4.0, + "Signed stoichiometry of water (oxygen reaction)": -1.0, + "Signed stoichiometry of oxygen (oxygen reaction)": 1.0, + "Electrons in oxygen reaction": 4.0, "Reference oxygen molecule concentration [mol.m-3]": 1000.0, - "Reference temperature [K]": 294.85, - "Separator Bruggeman coefficient (electrolyte)": 1.5, - "Separator density [kg.m-3]": 1680.0, - "Separator specific heat capacity [J.kg-1.K-1]": 700.0, - "Separator thermal conductivity [W.m-1.K-1]": 0.04, - "Separator thickness [m]": 0.0015, + "Oxygen reference OCP vs SHE [V]": 1.229, "Signed stoichiometry of cations (hydrogen reaction)": 2.0, - "Signed stoichiometry of cations (oxygen reaction)": 4.0, "Signed stoichiometry of hydrogen (hydrogen reaction)": -1.0, - "Signed stoichiometry of oxygen (oxygen reaction)": 1.0, - "Signed stoichiometry of water (oxygen reaction)": -1.0, - "Total heat transfer coefficient [W.m-2.K-1]": 10.0, - "Typical current [A]": 1.0, + "Electrons in hydrogen reaction": 2.0, + "Hydrogen reference OCP vs SHE [V]": 0.0, + "Molar volume of lead-dioxide [m3.mol-1]": 2.54797441364606e-05, "Typical electrolyte concentration [mol.m-3]": 5650.0, + "Cation transference number": 0.7, + "1 + dlnf/dlnc": 1.0, + "Partial molar volume of water [m3.mol-1]": 1.75e-05, + "Partial molar volume of anions [m3.mol-1]": 3.15e-05, + "Partial molar volume of cations [m3.mol-1]": 1.35e-05, + "Cation stoichiometry": 1.0, + "Anion stoichiometry": 1.0, + "Molar mass of water [kg.mol-1]": 0.01801, + "Molar mass of cations [kg.mol-1]": 0.001, + "Molar mass of anions [kg.mol-1]": 0.097, + "Volume change factor": 1.0, + "Electrolyte conductivity [S.m-1]": conductivity_Gu1997, + "Darken thermodynamic factor": darken_thermodynamic_factor_Chapman1968, + "Electrolyte diffusivity [m2.s-1]": diffusivity_Gu1997, + "Electrolyte viscosity [kg.m-1.s-1]": viscosity_Chapman1968, + "Oxygen diffusivity [m2.s-1]": 2.1e-09, "Typical oxygen concentration [mol.m-3]": 1000.0, + "Hydrogen diffusivity [m2.s-1]": 4.5e-09, + "Partial molar volume of oxygen molecules [m3.mol-1]": 3.21e-05, + "Partial molar volume of hydrogen molecules [m3.mol-1]": 2.31e-05, + "Molar mass of oxygen molecules [kg.mol-1]": 0.032, + "Molar mass of hydrogen molecules [kg.mol-1]": 0.002, + "Reference temperature [K]": 294.85, + "Maximum temperature [K]": 333.15, + "Ambient temperature [K]": 294.85, + "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, + "Positive current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, + "Negative tab heat transfer coefficient [W.m-2.K-1]": 10.0, + "Positive tab heat transfer coefficient [W.m-2.K-1]": 10.0, + "Total heat transfer coefficient [W.m-2.K-1]": 10.0, + "Edge heat transfer coefficient [W.m-2.K-1]": 0.3, + "Number of electrodes connected in parallel to make a cell": 8.0, + "Number of cells connected in series to make a battery": 6.0, + "Lower voltage cut-off [V]": 1.75, "Upper voltage cut-off [V]": 2.42, - "Volume change factor": 1.0, - } + "Initial State of Charge": 1.0, + "Initial oxygen concentration [mol.m-3]": 0.0, + "Initial temperature [K]": 294.85, + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Ai2020.py b/pybamm/input/parameters/lithium_ion/Ai2020.py index 8710ac6059..d9d446f456 100644 --- a/pybamm/input/parameters/lithium_ion/Ai2020.py +++ b/pybamm/input/parameters/lithium_ion/Ai2020.py @@ -1,3 +1,7 @@ +import pybamm +import numpy as np + + def graphite_diffusivity_Dualfoil1998(sto, T): """ Graphite diffusivity as a function of stochiometry [1, 2, 3]. @@ -26,8 +30,8 @@ def graphite_diffusivity_Dualfoil1998(sto, T): """ D_ref = 3.9 * 10 ** (-14) E_D_s = 5000 - T_ref = Parameter("Reference temperature [K]") - arrhenius = exp(E_D_s / constants.R * (1 / T_ref - 1 / T)) + T_ref = pybamm.Parameter("Reference temperature [K]") + arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / T_ref - 1 / T)) return D_ref * arrhenius def graphite_electrolyte_exchange_current_density_Dualfoil1998( @@ -58,10 +62,10 @@ def graphite_electrolyte_exchange_current_density_Dualfoil1998( Exchange-current density [A.m-2] """ m_ref = ( - 1 * 10 ** (-11) * constants.F + 1 * 10 ** (-11) * pybamm.constants.F ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 5000 # activation energy for Temperature Dependent Reaction Constant [J/mol] - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 @@ -196,11 +200,11 @@ def graphite_cracking_rate_Ai2020(T_dim): where m_cr is another Paris' law constant """ k_cr = 3.9e-20 - T_ref = Parameter("Reference temperature [K]") - Eac_cr = Parameter( + T_ref = pybamm.Parameter("Reference temperature [K]") + Eac_cr = pybamm.Parameter( "Negative electrode activation energy for cracking rate [J.mol-1]" ) - arrhenius = exp(Eac_cr / constants.R * (1 / T_dim - 1 / T_ref)) + arrhenius = pybamm.exp(Eac_cr / pybamm.constants.R * (1 / T_dim - 1 / T_ref)) return k_cr * arrhenius def lico2_diffusivity_Dualfoil1998(sto, T): @@ -226,8 +230,8 @@ def lico2_diffusivity_Dualfoil1998(sto, T): """ D_ref = 5.387 * 10 ** (-15) E_D_s = 5000 - T_ref = Parameter("Reference temperature [K]") - arrhenius = exp(E_D_s / constants.R * (1 / T_ref - 1 / T)) + T_ref = pybamm.Parameter("Reference temperature [K]") + arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / T_ref - 1 / T)) return D_ref * arrhenius def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_max, T): @@ -255,10 +259,10 @@ def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_m :class:`pybamm.Symbol` Exchange-current density [A.m-2] """ - m_ref = 1 * 10 ** (-11) * constants.F # need to match the unit from m/s + m_ref = 1 * 10 ** (-11) * pybamm.constants.F # need to match the unit from m/s # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 5000 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 @@ -340,7 +344,7 @@ def lico2_volume_change_Ai2020(sto, c_s_max): t_change:class:`pybamm.Symbol` volume change, dimensionless, normalised by particle volume """ - omega = Parameter("Positive electrode partial molar volume [m3.mol-1]") + omega = pybamm.Parameter("Positive electrode partial molar volume [m3.mol-1]") t_change = omega * c_s_max * sto return t_change @@ -370,11 +374,11 @@ def lico2_cracking_rate_Ai2020(T_dim): where m_cr is another Paris' law constant """ k_cr = 3.9e-20 - T_ref = Parameter("Reference temperature [K]") - Eac_cr = Parameter( + T_ref = pybamm.Parameter("Reference temperature [K]") + Eac_cr = pybamm.Parameter( "Positive electrode activation energy for cracking rate [J.mol-1]" ) - arrhenius = exp(Eac_cr / constants.R * (1 / T_dim - 1 / T_ref)) + arrhenius = pybamm.exp(Eac_cr / pybamm.constants.R * (1 / T_dim - 1 / T_ref)) return k_cr * arrhenius def dlnf_dlnc_Ai2020(c_e, T, T_ref=298.3, t_plus=0.38): @@ -400,8 +404,8 @@ def dlnf_dlnc_Ai2020(c_e, T, T_ref=298.3, t_plus=0.38): :class:`pybamm.Symbol` 1 + dlnf/dlnc """ - T_ref = Parameter("Reference temperature [K]") - t_plus = Parameter("Cation transference number") + T_ref = pybamm.Parameter("Reference temperature [K]") + t_plus = pybamm.Parameter("Cation transference number") dlnf_dlnc = ( 0.601 - 0.24 * (c_e / 1000) ** 0.5 @@ -479,373 +483,147 @@ def electrolyte_conductivity_Ai2020(c_e, T): return sigma_e +graphite_ocp_Enertech_Ai2020_filename = pybamm.get_parameters_filepath('pybamm/input/parameters/lithium_ion/graphite_ocp_Enertech_Ai2020.csv') +graphite_ocp_Enertech_Ai2020 = np.loadtxt(graphite_ocp_Enertech_Ai2020_filename, delimiter=',') +lico2_ocp_Ai2020_filename = pybamm.get_parameters_filepath('pybamm/input/parameters/lithium_ion/lico2_ocp_Ai2020.csv') +lico2_ocp_Ai2020 = np.loadtxt(lico2_ocp_Ai2020_filename, delimiter=',') + def get_parameter_values(): - return {'1 + dlnf/dlnc': dlnf_dlnc_Ai2020, - 'Ambient temperature [K]': 298.15, - 'Bulk solvent concentration [mol.m-3]': 2636.0, - 'Cation transference number': 0.38, - 'Cell cooling surface area [m2]': 0.0060484, - 'Cell emissivity': 0.95, - 'Cell thermal expansion coefficient [m.K-1]': 1.1e-06, - 'Cell volume [m3]': 1.5341e-05, - 'Current function [A]': 2.28, - 'EC diffusivity [m2.s-1]': 2e-18, - 'EC initial concentration in electrolyte [mol.m-3]': 4541.0, - 'Electrode height [m]': 0.051, - 'Electrode width [m]': 0.047, - 'Electrolyte conductivity [S.m-1]': electrolyte_conductivity_Ai2020, - 'Electrolyte diffusivity [m2.s-1]': electrolyte_diffusivity_Ai2020, - 'Initial concentration in electrolyte [mol.m-3]': 1000.0, - 'Initial concentration in negative electrode [mol.m-3]': 24108.0, - 'Initial concentration in positive electrode [mol.m-3]': 21725.0, - 'Initial inner SEI thickness [m]': 2.5e-09, - 'Initial outer SEI thickness [m]': 2.5e-09, - 'Initial temperature [K]': 298.15, - 'Inner SEI electron conductivity [S.m-1]': 8.95e-14, - 'Inner SEI lithium interstitial diffusivity [m2.s-1]': 1e-20, - 'Inner SEI open-circuit potential [V]': 0.1, - 'Inner SEI partial molar volume [m3.mol-1]': 9.585e-05, - 'Inner SEI reaction proportion': 0.5, - 'Lithium interstitial reference concentration [mol.m-3]': 15.0, - 'Lower voltage cut-off [V]': 3.0, - 'Maximum concentration in negative electrode [mol.m-3]': 28700.0, - 'Maximum concentration in positive electrode [mol.m-3]': 49943.0, - 'Negative current collector conductivity [S.m-1]': 58411000.0, - 'Negative current collector density [kg.m-3]': 8960.0, - 'Negative current collector specific heat capacity [J.kg-1.K-1]': 385.0, - 'Negative current collector thermal conductivity [W.m-1.K-1]': 401.0, - 'Negative current collector thickness [m]': 1e-05, - 'Negative electrode Bruggeman coefficient (electrode)': 0.0, - 'Negative electrode Bruggeman coefficient (electrolyte)': 2.914, - 'Negative electrode LAM constant exponential term': 2.0, - 'Negative electrode LAM constant proportional term [s-1]': 0.0, - 'Negative electrode OCP [V]': ('graphite_ocp_Enertech_Ai2020, - ([array([0.00000000e+00, 5.00000000e-04, 1.27041000e-03, 1.52479000e-03, - 1.90595000e-03, 2.22355800e-03, 4.06054700e-03, 4.82015100e-03, - 6.46394300e-03, 7.41337000e-03, 8.61650600e-03, 9.12341700e-03, - 1.07682260e-02, 1.26650460e-02, 1.41183440e-02, 1.77867520e-02, - 2.06946900e-02, 2.39837990e-02, 3.05021750e-02, 3.60011350e-02, - 3.96066620e-02, 5.91480830e-02, 6.12979420e-02, 7.13498330e-02, - 8.02655260e-02, 1.19208079e-01, 1.28120548e-01, 1.34253707e-01, - 1.41584594e-01, 1.50874177e-01, 1.60609131e-01, 1.70345957e-01, - 1.89747769e-01, 2.09222253e-01, 2.19017730e-01, 2.28756579e-01, - 2.38552575e-01, 2.48349231e-01, 2.58084023e-01, 2.67821184e-01, - 2.87415350e-01, 2.97209811e-01, 3.07004942e-01, 3.16798396e-01, - 3.26534032e-01, 3.36321558e-01, 3.46061758e-01, 3.55856392e-01, - 3.65593044e-01, 3.75388012e-01, 3.85120781e-01, 3.94915577e-01, - 4.04717479e-01, 4.14512102e-01, 4.24244871e-01, 4.34039331e-01, - 4.43770240e-01, 4.53564862e-01, 4.63298139e-01, 4.73034456e-01, - 4.82766544e-01, 4.92564552e-01, 5.02302892e-01, 5.12042595e-01, - 5.21833161e-01, 5.31572182e-01, 5.41369033e-01, 5.51104831e-01, - 5.60899800e-01, 5.70635608e-01, 5.80434806e-01, 5.90235692e-01, - 5.99977407e-01, 6.09716266e-01, 6.19517822e-01, 6.29313635e-01, - 6.39049108e-01, 6.48790152e-01, 6.58584104e-01, 6.68320248e-01, - 6.78055040e-01, 6.87851869e-01, 6.97649380e-01, 7.07389072e-01, - 7.17188097e-01, 7.26977148e-01, 7.36776336e-01, 7.46515866e-01, - 7.56259106e-01, 7.66055091e-01, 7.75789039e-01, 7.85537861e-01, - 7.95329790e-01, 8.05080646e-01, 8.14827099e-01, 8.24570003e-01, - 8.34370889e-01, 8.44173289e-01, 8.53913187e-01, 8.63650510e-01, - 8.73392073e-01, 8.83126865e-01, 8.92918286e-01, 9.02708516e-01, - 9.12443308e-01, 9.22232533e-01, 9.32019724e-01, 9.41812832e-01, - 9.51602392e-01, 9.61392795e-01, 9.70177652e-01, 9.76051358e-01, - 9.80413449e-01, 9.83887804e-01, 9.86792703e-01, 9.89255096e-01, - 9.91401407e-01, 9.93359929e-01, 9.95130154e-01, 9.96776304e-01, - 9.98229440e-01, 9.99241066e-01, 9.99746961e-01, 9.99936448e-01, - 1.00000000e+00])], - array([3.5 , 3. , 1.04 , 1.01 , 0.97265384, - 0.94249055, 0.81624059, 0.78028093, 0.71896262, 0.69137476, - 0.66139178, 0.64996223, 0.6165173 , 0.58331086, 0.56083078, - 0.51243948, 0.48025136, 0.44849587, 0.39598881, 0.35950768, - 0.33847798, 0.25631956, 0.25117361, 0.23605532, 0.23100922, - 0.2232966 , 0.21828424, 0.21327386, 0.20822836, 0.20320974, - 0.19862098, 0.19381638, 0.18416691, 0.17679053, 0.17383044, - 0.17096326, 0.1679035 , 0.16464998, 0.16149133, 0.15859383, - 0.15339916, 0.15100232, 0.14886213, 0.14691891, 0.14532814, - 0.14400211, 0.14290212, 0.14201426, 0.14131601, 0.1407591 , - 0.14031432, 0.13994232, 0.13961785, 0.13932541, 0.13905101, - 0.1387793 , 0.13851741, 0.1382589 , 0.13798129, 0.13767223, - 0.13732933, 0.13690322, 0.13639024, 0.13575758, 0.1349471 , - 0.13392324, 0.13262168, 0.13098947, 0.12896492, 0.12654999, - 0.12374288, 0.12077083, 0.11792963, 0.11537998, 0.11320542, - 0.11136648, 0.10985549, 0.10857895, 0.10752068, 0.10663254, - 0.10589376, 0.10526061, 0.10471319, 0.10425437, 0.10384562, - 0.10347712, 0.10315393, 0.10285654, 0.10258744, 0.10233828, - 0.10210199, 0.1018809 , 0.10167642, 0.10146588, 0.10126417, - 0.10106263, 0.10087041, 0.10068096, 0.10048922, 0.10030044, - 0.10009972, 0.0998771 , 0.09962899, 0.09933262, 0.09895842, - 0.09844254, 0.09768364, 0.096492 , 0.09451079, 0.09113682, - 0.08611519, 0.08107875, 0.07604037, 0.07099153, 0.06589833, - 0.06084405, 0.05581012, 0.0506707 , 0.0455624 , 0.04039266, - 0.03526127, 0.03024266, 0.02485077, 0.0192515 , 0.00499468]))), - 'Negative electrode OCP entropic change [V.K-1]': graphite_entropy_Enertech_Ai2020_function, - "Negative electrode Paris' law constant b": 1.12, - "Negative electrode Paris' law constant m": 2.2, - "Negative electrode Poisson's ratio": 0.3, - "Negative electrode Young's modulus [Pa]": 15000000000.0, - 'Negative electrode activation energy for cracking rate [J.mol-1]': 0.0, - 'Negative electrode active material volume fraction': 0.61, - 'Negative electrode cation signed stoichiometry': -1.0, - 'Negative electrode charge transfer coefficient': 0.5, - 'Negative electrode conductivity [S.m-1]': 100.0, - 'Negative electrode cracking rate': graphite_cracking_rate_Ai2020, - 'Negative electrode critical stress [Pa]': 60000000.0, - 'Negative electrode density [kg.m-3]': 2470.0, - 'Negative electrode diffusivity [m2.s-1]': graphite_diffusivity_Dualfoil1998, - 'Negative electrode double-layer capacity [F.m-2]': 0.2, - 'Negative electrode electrons in reaction': 1.0, - 'Negative electrode exchange-current density [A.m-2]': graphite_electrolyte_exchange_current_density_Dualfoil1998, - 'Negative electrode initial crack length [m]': 2e-08, - 'Negative electrode initial crack width [m]': 1.5e-08, - 'Negative electrode number of cracks per unit area [m-2]': 3180000000000000.0, - 'Negative electrode partial molar volume [m3.mol-1]': 3.1e-06, - 'Negative electrode porosity': 0.33, - 'Negative electrode reaction-driven LAM factor [m3.mol-1]': 0.0, - 'Negative electrode reference concentration for free of deformation [mol.m-3]': 0.0, - 'Negative electrode specific heat capacity [J.kg-1.K-1]': 1080.2, - 'Negative electrode thermal conductivity [W.m-1.K-1]': 1.04, - 'Negative electrode thickness [m]': 7.65e-05, - 'Negative electrode volume change': graphite_volume_change_Ai2020, - 'Negative particle radius [m]': 5e-06, - 'Nominal cell capacity [A.h]': 2.28, - 'Number of cells connected in series to make a battery': 1.0, - 'Number of electrodes connected in parallel to make a cell': 34.0, - 'Outer SEI open-circuit potential [V]': 0.8, - 'Outer SEI partial molar volume [m3.mol-1]': 9.585e-05, - 'Outer SEI solvent diffusivity [m2.s-1]': 2.5000000000000002e-22, - 'Positive current collector conductivity [S.m-1]': 36914000.0, - 'Positive current collector density [kg.m-3]': 2700.0, - 'Positive current collector specific heat capacity [J.kg-1.K-1]': 897.0, - 'Positive current collector thermal conductivity [W.m-1.K-1]': 237.0, - 'Positive current collector thickness [m]': 1.5e-05, - 'Positive electrode Bruggeman coefficient (electrode)': 0.0, - 'Positive electrode Bruggeman coefficient (electrolyte)': 1.83, - 'Positive electrode LAM constant exponential term': 2.0, - 'Positive electrode LAM constant proportional term [s-1]': 2.78e-13, - 'Positive electrode OCP [V]': ('lico2_ocp_Ai2020, - ([array([0.43 , 0.43663978, 0.43790614, 0.4391725 , 0.44043886, - 0.44170522, 0.44297158, 0.44423794, 0.4455043 , 0.44677066, - 0.44803701, 0.44930337, 0.45056973, 0.45183609, 0.45310245, - 0.45436881, 0.45563517, 0.45690153, 0.45816788, 0.45943424, - 0.4607006 , 0.46196696, 0.46323332, 0.46449968, 0.46576604, - 0.4670324 , 0.46829876, 0.46956511, 0.47083147, 0.47209783, - 0.47336419, 0.47463055, 0.47589691, 0.47716327, 0.47842963, - 0.47969599, 0.48096235, 0.4822287 , 0.48349506, 0.48476142, - 0.48602778, 0.48729414, 0.4885605 , 0.48982686, 0.49109322, - 0.49235957, 0.49362593, 0.49489229, 0.49615865, 0.49742501, - 0.49869137, 0.49995773, 0.50122409, 0.50249045, 0.5037568 , - 0.50502316, 0.50628952, 0.50755588, 0.50882224, 0.5100886 , - 0.51135496, 0.51262132, 0.51388768, 0.51515404, 0.51642039, - 0.51768675, 0.51895311, 0.52021947, 0.52148583, 0.52275219, - 0.52401855, 0.52528491, 0.52655126, 0.52781762, 0.52908398, - 0.53035034, 0.5316167 , 0.53288306, 0.53414942, 0.53541577, - 0.53668213, 0.53794849, 0.53921485, 0.54048121, 0.54174757, - 0.54301393, 0.54428029, 0.54554665, 0.546813 , 0.54807936, - 0.54934572, 0.55061208, 0.55187844, 0.5531448 , 0.55441116, - 0.55567752, 0.55694387, 0.55821023, 0.55947659, 0.56074295, - 0.56200931, 0.56327567, 0.56454203, 0.56580839, 0.56707475, - 0.56834111, 0.56960746, 0.57087382, 0.57214018, 0.57340654, - 0.5746729 , 0.57593926, 0.57720562, 0.57847198, 0.57973834, - 0.58100469, 0.58227105, 0.58353741, 0.58480377, 0.58607013, - 0.58733649, 0.58860285, 0.58986921, 0.59113556, 0.59240192, - 0.59366828, 0.59493464, 0.596201 , 0.59746736, 0.59873372, - 0.60000008, 0.60126644, 0.6025328 , 0.60379915, 0.60506551, - 0.60633187, 0.60759823, 0.60886459, 0.61013095, 0.61139731, - 0.61266367, 0.61393003, 0.61519638, 0.61646274, 0.6177291 , - 0.61899546, 0.62026182, 0.62152818, 0.62279454, 0.6240609 , - 0.62532725, 0.62659361, 0.62785997, 0.62912633, 0.63039269, - 0.63165905, 0.63292541, 0.63419177, 0.63545813, 0.63672449, - 0.63799084, 0.6392572 , 0.64052356, 0.64178992, 0.64305628, - 0.64432264, 0.645589 , 0.64685536, 0.64812172, 0.64938807, - 0.65065443, 0.65192079, 0.65318715, 0.65445351, 0.65571987, - 0.65698623, 0.65825259, 0.65951894, 0.6607853 , 0.66205166, - 0.66331802, 0.66458438, 0.66585074, 0.6671171 , 0.66838346, - 0.66964982, 0.67091618, 0.67218253, 0.67344889, 0.67471525, - 0.67598161, 0.67724797, 0.67851433, 0.67978069, 0.68104705, - 0.68231341, 0.68357976, 0.68484612, 0.68611248, 0.68737884, - 0.6886452 , 0.68991157, 0.69117793, 0.69244429, 0.69371065, - 0.694977 , 0.69624336, 0.69750972, 0.69877608, 0.70004244, - 0.7013088 , 0.70257516, 0.70384152, 0.70510788, 0.70637423, - 0.70764059, 0.70890695, 0.71017331, 0.71143967, 0.71270603, - 0.71397239, 0.71523875, 0.7165051 , 0.71777146, 0.71903782, - 0.72030418, 0.72157054, 0.7228369 , 0.72410326, 0.72536962, - 0.72663598, 0.72790234, 0.72916869, 0.73043505, 0.73170141, - 0.73296777, 0.73423413, 0.73550049, 0.73676685, 0.73803321, - 0.73929957, 0.74056592, 0.74183228, 0.74309864, 0.744365 , - 0.74563136, 0.74689772, 0.74816408, 0.74943044, 0.75069679, - 0.75196315, 0.75322951, 0.75449587, 0.75576223, 0.75702859, - 0.75829495, 0.75956131, 0.76082767, 0.76209403, 0.76336038, - 0.76462674, 0.7658931 , 0.76715946, 0.76842582, 0.76969218, - 0.77095854, 0.7722249 , 0.77349126, 0.77475761, 0.77602397, - 0.77729033, 0.77855669, 0.77982305, 0.78108941, 0.78235577, - 0.78362213, 0.78488848, 0.78615484, 0.7874212 , 0.78868756, - 0.78995392, 0.79122028, 0.79248664, 0.793753 , 0.79501936, - 0.79628572, 0.79755207, 0.79881843, 0.80008479, 0.80135115, - 0.80261751, 0.80388387, 0.80515023, 0.80641659, 0.80768294, - 0.8089493 , 0.81021566, 0.81148202, 0.81274838, 0.81401474, - 0.8152811 , 0.81654746, 0.81781382, 0.81908017, 0.82034653, - 0.82161289, 0.82287925, 0.82414561, 0.82541197, 0.82667833, - 0.82794469, 0.82921104, 0.8304774 , 0.83174376, 0.83301012, - 0.83427648, 0.83554284, 0.8368092 , 0.83807556, 0.83934192, - 0.84060828, 0.84187463, 0.84314099, 0.84440735, 0.84567371, - 0.84694007, 0.84820643, 0.84947279, 0.85073915, 0.85200551, - 0.85327186, 0.85453822, 0.85580458, 0.85707094, 0.8583373 , - 0.85960366, 0.86087002, 0.86213638, 0.86340273, 0.86466909, - 0.86593545, 0.86720181, 0.86846817, 0.86973453, 0.87100089, - 0.87226725, 0.87353361, 0.87479997, 0.87606632, 0.87733268, - 0.87859904, 0.8798654 , 0.88113176, 0.88239812, 0.88366448, - 0.88493084, 0.8861972 , 0.88746355, 0.88872991, 0.88999627, - 0.89126263, 0.89252899, 0.89379535, 0.89506171, 0.89632807, - 0.89759442, 0.89886078, 0.90012714, 0.9013935 , 0.90265986, - 0.90392622, 0.90519258, 0.90645894, 0.9077253 , 0.90899166, - 0.91025801, 0.91152437, 0.91279073, 0.91405709, 0.91532345, - 0.91658981, 0.91785617, 0.91912253, 0.92038889, 0.92165524, - 0.9229216 , 0.92418796, 0.92545432, 0.92672068, 0.92798704, - 0.9292534 , 0.93051976, 0.93178611, 0.93305247, 0.93431883, - 0.93558519, 0.93685155, 0.93811791, 0.93938427, 0.94065063, - 0.94191699, 0.94318335, 0.9444497 , 0.94571606, 0.94698242, - 0.94824878, 0.94951514, 0.9507815 , 0.95204786, 0.95331422, - 0.95458058, 0.95584693, 0.95711329, 0.95837965, 0.95964601, - 0.96091237, 0.96217873, 0.96344509, 0.96471145, 0.9659778 , - 0.96724416, 0.96851052, 0.96977688, 0.97104324, 0.9723096 , - 0.97357596, 0.97484232, 0.97610868, 0.97737504, 0.97864139, - 0.97990775, 0.98117411, 0.98244047, 0.98370683, 0.98497319, - 0.98623955, 0.98750591, 0.98877227, 0.99003862, 0.99130498, - 0.99257134, 0.9938377 , 0.99510406, 0.99637042, 0.99763678, - 0.99890314])], - array([4.3 , 4.27990775, 4.27647267, 4.27380094, 4.27112921, - 4.26864831, 4.26616742, 4.26368653, 4.26120563, 4.25872474, - 4.25624385, 4.25376295, 4.25128206, 4.248992 , 4.24651111, - 4.24422105, 4.24174016, 4.23925927, 4.23696921, 4.23467916, - 4.23219826, 4.22971737, 4.22723647, 4.22513726, 4.22265636, - 4.22036631, 4.21788541, 4.21559536, 4.2133053 , 4.21101525, - 4.20853436, 4.2062443 , 4.20395424, 4.20166419, 4.19937413, - 4.19708408, 4.19479402, 4.19250397, 4.19021391, 4.18792386, - 4.18582464, 4.18353458, 4.18105369, 4.17895447, 4.17685525, - 4.1745652 , 4.17227514, 4.16998509, 4.16788587, 4.16578665, - 4.16368743, 4.16158822, 4.15929816, 4.15738978, 4.15529056, - 4.15319135, 4.15109213, 4.14899291, 4.14689369, 4.14479448, - 4.14250442, 4.1404052 , 4.13830599, 4.13620677, 4.13410755, - 4.13181749, 4.12971828, 4.12761906, 4.12551984, 4.12322979, - 4.12113057, 4.11922219, 4.11693213, 4.11502376, 4.1127337 , - 4.11063448, 4.1087261 , 4.10681772, 4.10471851, 4.10261929, - 4.10090174, 4.09861169, 4.09670331, 4.09498577, 4.09288655, - 4.09097817, 4.08906979, 4.08735225, 4.08544387, 4.08353549, - 4.08181795, 4.07990957, 4.07819203, 4.07647449, 4.07456611, - 4.07284857, 4.07113102, 4.06941348, 4.06769594, 4.0659784 , - 4.06445169, 4.06273415, 4.06120745, 4.05929907, 4.05777237, - 4.05605483, 4.05452812, 4.05281058, 4.05128388, 4.04956633, - 4.04803963, 4.04632209, 4.04479538, 4.04326868, 4.04155114, - 4.04002444, 4.03830689, 4.03697103, 4.03525349, 4.03372678, - 4.03220008, 4.03067338, 4.02914667, 4.02761997, 4.02609327, - 4.02456656, 4.02303986, 4.02170399, 4.02017729, 4.01884142, - 4.01731472, 4.01578802, 4.01426131, 4.01292544, 4.01158958, - 4.01025371, 4.00872701, 4.00739114, 4.00605528, 4.00471941, - 4.00338355, 4.00185684, 4.00071182, 3.99937595, 3.99784925, - 3.99670422, 3.99536835, 3.99403249, 3.99288746, 3.99155159, - 3.99021573, 3.9890707 , 3.98773483, 3.98639897, 3.98525394, - 3.98410891, 3.98277305, 3.98162802, 3.98029215, 3.97914713, - 3.97819294, 3.97685707, 3.97571204, 3.97456701, 3.97342199, - 3.97227696, 3.97094109, 3.9699869 , 3.96884188, 3.96769685, - 3.96674266, 3.96559763, 3.9644526 , 3.96349841, 3.96235339, - 3.96120836, 3.96025417, 3.95910914, 3.95815495, 3.95720076, - 3.95605573, 3.95510154, 3.95414735, 3.95300233, 3.95204814, - 3.95128478, 3.95013976, 3.94918557, 3.94823138, 3.94727719, - 3.94651384, 3.94536881, 3.94460546, 3.94365127, 3.94269708, - 3.94193372, 3.94097953, 3.94002534, 3.93926199, 3.9383078 , - 3.93754445, 3.93659026, 3.93582691, 3.93487272, 3.93410937, - 3.93334602, 3.93258266, 3.93181931, 3.93086512, 3.93029261, - 3.92933842, 3.92857507, 3.92781171, 3.92704836, 3.92628501, - 3.92552166, 3.92494915, 3.92418579, 3.92361328, 3.92284993, - 3.92208658, 3.92132322, 3.92075071, 3.91998736, 3.91922401, - 3.91865149, 3.91807898, 3.91750647, 3.91693395, 3.91636144, - 3.91578892, 3.91502557, 3.9146439 , 3.91388054, 3.91330803, - 3.91273552, 3.912163 , 3.91178133, 3.91120881, 3.9106363 , - 3.91006379, 3.90949127, 3.90891876, 3.90853708, 3.90815541, - 3.90758289, 3.90701038, 3.9066287 , 3.90605619, 3.90586535, - 3.90529284, 3.90491116, 3.90452948, 3.90395697, 3.90357529, - 3.90319362, 3.90281194, 3.9026211 , 3.90223943, 3.90185775, - 3.90147608, 3.9010944 , 3.90090356, 3.90052189, 3.90014021, - 3.89994937, 3.89975854, 3.89937686, 3.89918602, 3.89899518, - 3.89861351, 3.89842267, 3.89804099, 3.89785015, 3.89765932, - 3.89746848, 3.89727764, 3.8970868 , 3.89670513, 3.89670513, - 3.89651429, 3.89632345, 3.89632345, 3.89613261, 3.89575094, - 3.89575094, 3.8955601 , 3.89536926, 3.89517842, 3.89498759, - 3.89479675, 3.89460591, 3.89460591, 3.89441507, 3.89422423, - 3.8940334 , 3.8940334 , 3.89384256, 3.89365172, 3.89365172, - 3.89346088, 3.89327004, 3.89327004, 3.89307921, 3.89288837, - 3.89269753, 3.89269753, 3.89250669, 3.89231585, 3.89212502, - 3.89193418, 3.89193418, 3.89174334, 3.8915525 , 3.89136166, - 3.89117083, 3.89097999, 3.89097999, 3.89078915, 3.89059831, - 3.89040747, 3.89021664, 3.8900258 , 3.88983496, 3.88983496, - 3.88964412, 3.88926245, 3.88907161, 3.88888077, 3.88868993, - 3.88849909, 3.88830826, 3.88811742, 3.88773574, 3.8875449 , - 3.88735407, 3.88716323, 3.88697239, 3.88659072, 3.88620904, - 3.8860182 , 3.88582736, 3.88544569, 3.88506401, 3.88487317, - 3.8844915 , 3.88430066, 3.88391898, 3.88372815, 3.88334647, - 3.88277396, 3.88258312, 3.88220144, 3.88181977, 3.88143809, - 3.88105642, 3.88067474, 3.88010222, 3.87952971, 3.87914804, - 3.87857552, 3.87819385, 3.87781217, 3.87723965, 3.87666714, - 3.87609463, 3.87552211, 3.8749496 , 3.87437709, 3.87361373, - 3.87304122, 3.87246871, 3.87170535, 3.87113284, 3.87036949, - 3.8694153 , 3.86884279, 3.86807943, 3.86712524, 3.86617105, - 3.8654077 , 3.86445351, 3.86349932, 3.86254513, 3.8614001 , - 3.86025508, 3.85930089, 3.85815586, 3.85681999, 3.85567497, - 3.85414826, 3.85300323, 3.85147653, 3.84994983, 3.84842312, - 3.84689642, 3.84498804, 3.8432705 , 3.84136212, 3.8392629 , - 3.83716368, 3.83506447, 3.83258357, 3.83010268, 3.82743095, - 3.82475922, 3.82189665, 3.81884324, 3.81559899, 3.81216391, - 3.80853799, 3.80491207, 3.80090447, 3.79689687, 3.79269844, - 3.78830917, 3.78391989, 3.77914894, 3.77456883, 3.76960704, - 3.76502693, 3.76006515, 3.75510336, 3.75014157, 3.74517979, - 3.740218 , 3.73506538, 3.72991275, 3.72476012, 3.71941666, - 3.71388236, 3.70815722, 3.70224125, 3.69613443, 3.6894551 , - 3.6823941 , 3.67476058, 3.66636371, 3.65663097, 3.64556237, - 3.63220371, 3.61521913, 3.5919369 , 3.55720439, 3.50109804, - 3.4089233 ]))), - 'Positive electrode OCP entropic change [V.K-1]': lico2_entropic_change_Ai2020_function, - "Positive electrode Paris' law constant b": 1.12, - "Positive electrode Paris' law constant m": 2.2, - "Positive electrode Poisson's ratio": 0.2, - "Positive electrode Young's modulus [Pa]": 375000000000.0, - 'Positive electrode activation energy for cracking rate [J.mol-1]': 0.0, - 'Positive electrode active material volume fraction': 0.62, - 'Positive electrode cation signed stoichiometry': -1.0, - 'Positive electrode charge transfer coefficient': 0.5, - 'Positive electrode conductivity [S.m-1]': 10.0, - 'Positive electrode cracking rate': lico2_cracking_rate_Ai2020, - 'Positive electrode critical stress [Pa]': 375000000.0, - 'Positive electrode density [kg.m-3]': 2470.0, - 'Positive electrode diffusivity [m2.s-1]': lico2_diffusivity_Dualfoil1998, - 'Positive electrode double-layer capacity [F.m-2]': 0.2, - 'Positive electrode electrons in reaction': 1.0, - 'Positive electrode exchange-current density [A.m-2]': lico2_electrolyte_exchange_current_density_Dualfoil1998, - 'Positive electrode initial crack length [m]': 2e-08, - 'Positive electrode initial crack width [m]': 1.5e-08, - 'Positive electrode number of cracks per unit area [m-2]': 3180000000000000.0, - 'Positive electrode partial molar volume [m3.mol-1]': -7.28e-07, - 'Positive electrode porosity': 0.32, - 'Positive electrode reaction-driven LAM factor [m3.mol-1]': 0.0, - 'Positive electrode reference concentration for free of deformation [mol.m-3]': 0.0, - 'Positive electrode specific heat capacity [J.kg-1.K-1]': 1080.2, - 'Positive electrode surface area to volume ratio [m-1]': 620000.0, - 'Positive electrode thermal conductivity [W.m-1.K-1]': 1.58, - 'Positive electrode thickness [m]': 6.8e-05, - 'Positive electrode volume change': lico2_volume_change_Ai2020, - 'Positive particle radius [m]': 3e-06, - 'Ratio of lithium moles to SEI moles': 2.0, - 'Reference temperature [K]': 298.15, - 'SEI growth activation energy [J.mol-1]': 0.0, - 'SEI kinetic rate constant [m.s-1]': 1e-12, - 'SEI open-circuit potential [V]': 0.4, - 'SEI reaction exchange current density [A.m-2]': 1.5e-07, - 'SEI resistivity [Ohm.m]': 200000.0, - 'Separator Bruggeman coefficient (electrolyte)': 1.5, - 'Separator density [kg.m-3]': 2470.0, - 'Separator porosity': 0.5, - 'Separator specific heat capacity [J.kg-1.K-1]': 1080.2, - 'Separator thermal conductivity [W.m-1.K-1]': 0.334, - 'Separator thickness [m]': 2.5e-05, - 'Total heat transfer coefficient [W.m-2.K-1]': 35.0, - 'Typical current [A]': 2.28, - 'Typical electrolyte concentration [mol.m-3]': 1000.0, - 'Upper voltage cut-off [V]': 4.2} \ No newline at end of file + return { + # Negative electrode + "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Negative electrode thickness [m]": 7.65e-05, + "Negative electrode conductivity [S.m-1]": 100.0, + "Maximum concentration in negative electrode [mol.m-3]": 28700.0, + "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_Dualfoil1998, + "Negative electrode OCP [V]": ('graphite_ocp_Enertech_Ai2020', graphite_ocp_Enertech_Ai2020), + "Negative electrode porosity": 0.33, + "Negative electrode active material volume fraction": 0.61, + "Negative electrode Bruggeman coefficient (electrolyte)": 2.914, + "Negative electrode Bruggeman coefficient (electrode)": 0.0, + "Negative electrode cation signed stoichiometry": -1.0, + "Negative electrode electrons in reaction": 1.0, + "Negative electrode charge transfer coefficient": 0.5, + "Negative electrode double-layer capacity [F.m-2]": 0.2, + "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_Dualfoil1998, + "Negative electrode density [kg.m-3]": 2470.0, + "Negative electrode specific heat capacity [J.kg-1.K-1]": 1080.2, + "Negative electrode thermal conductivity [W.m-1.K-1]": 1.04, + "Negative electrode OCP entropic change [V.K-1]": graphite_entropy_Enertech_Ai2020_function, + "Negative electrode Poisson's ratio": 0.3, + "Negative electrode Young's modulus [Pa]": 15000000000.0, + "Negative electrode reference concentration for free of deformation [mol.m-3]": 0.0, + "Negative electrode partial molar volume [m3.mol-1]": 3.1e-06, + "Negative electrode volume change": graphite_volume_change_Ai2020, + "Negative electrode initial crack length [m]": 2e-08, + "Negative electrode initial crack width [m]": 1.5e-08, + "Negative electrode number of cracks per unit area [m-2]": 3180000000000000.0, + "Negative electrode Paris' law constant b": 1.12, + "Negative electrode Paris' law constant m": 2.2, + "Negative electrode cracking rate": graphite_cracking_rate_Ai2020, + "Negative electrode activation energy for cracking rate [J.mol-1]": 0.0, + "Negative electrode LAM constant proportional term [s-1]": 0.0, + "Negative electrode LAM constant exponential term": 2.0, + "Negative electrode critical stress [Pa]": 60000000.0, + "Initial concentration in negative electrode [mol.m-3]": 24108.0, + # Separator + "Separator thickness [m]": 2.5e-05, + "Separator porosity": 0.5, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator density [kg.m-3]": 2470.0, + "Separator specific heat capacity [J.kg-1.K-1]": 1080.2, + "Separator thermal conductivity [W.m-1.K-1]": 0.334, + # Positive electrode + "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Positive electrode thickness [m]": 6.8e-05, + "Positive electrode conductivity [S.m-1]": 10.0, + "Maximum concentration in positive electrode [mol.m-3]": 49943.0, + "Positive electrode diffusivity [m2.s-1]": lico2_diffusivity_Dualfoil1998, + "Positive electrode OCP [V]": ('lico2_ocp_Ai2020', lico2_ocp_Ai2020), + "Positive electrode porosity": 0.32, + "Positive electrode active material volume fraction": 0.62, + "Positive electrode surface area to volume ratio [m-1]": 620000.0, + "Positive electrode Bruggeman coefficient (electrolyte)": 1.83, + "Positive electrode Bruggeman coefficient (electrode)": 0.0, + "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode electrons in reaction": 1.0, + "Positive electrode charge transfer coefficient": 0.5, + "Positive electrode double-layer capacity [F.m-2]": 0.2, + "Positive electrode exchange-current density [A.m-2]": lico2_electrolyte_exchange_current_density_Dualfoil1998, + "Positive electrode density [kg.m-3]": 2470.0, + "Positive electrode specific heat capacity [J.kg-1.K-1]": 1080.2, + "Positive electrode thermal conductivity [W.m-1.K-1]": 1.58, + "Positive electrode OCP entropic change [V.K-1]": lico2_entropic_change_Ai2020_function, + "Positive electrode Poisson's ratio": 0.2, + "Positive electrode Young's modulus [Pa]": 375000000000.0, + "Positive electrode reference concentration for free of deformation [mol.m-3]": 0.0, + "Positive electrode partial molar volume [m3.mol-1]": -7.28e-07, + "Positive electrode volume change": lico2_volume_change_Ai2020, + "Positive electrode initial crack length [m]": 2e-08, + "Positive electrode initial crack width [m]": 1.5e-08, + "Positive electrode number of cracks per unit area [m-2]": 3180000000000000.0, + "Positive electrode Paris' law constant b": 1.12, + "Positive electrode Paris' law constant m": 2.2, + "Positive electrode cracking rate": lico2_cracking_rate_Ai2020, + "Positive electrode activation energy for cracking rate [J.mol-1]": 0.0, + "Positive electrode LAM constant proportional term [s-1]": 2.78e-13, + "Positive electrode LAM constant exponential term": 2.0, + "Positive electrode critical stress [Pa]": 375000000.0, + "Initial concentration in positive electrode [mol.m-3]": 21725.0, + # Other + "Ratio of lithium moles to SEI moles": 2.0, + "Inner SEI reaction proportion": 0.5, + "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, + "SEI reaction exchange current density [A.m-2]": 1.5e-07, + "SEI resistivity [Ohm.m]": 200000.0, + "Outer SEI solvent diffusivity [m2.s-1]": 2.5000000000000002e-22, + "Bulk solvent concentration [mol.m-3]": 2636.0, + "Inner SEI open-circuit potential [V]": 0.1, + "Outer SEI open-circuit potential [V]": 0.8, + "Inner SEI electron conductivity [S.m-1]": 8.95e-14, + "Inner SEI lithium interstitial diffusivity [m2.s-1]": 1e-20, + "Lithium interstitial reference concentration [mol.m-3]": 15.0, + "Initial inner SEI thickness [m]": 2.5e-09, + "Initial outer SEI thickness [m]": 2.5e-09, + "EC initial concentration in electrolyte [mol.m-3]": 4541.0, + "EC diffusivity [m2.s-1]": 2e-18, + "SEI kinetic rate constant [m.s-1]": 1e-12, + "SEI open-circuit potential [V]": 0.4, + "SEI growth activation energy [J.mol-1]": 0.0, + "Negative current collector thickness [m]": 1e-05, + "Positive current collector thickness [m]": 1.5e-05, + "Electrode height [m]": 0.051, + "Electrode width [m]": 0.047, + "Cell cooling surface area [m2]": 0.0060484, + "Cell volume [m3]": 1.5341e-05, + "Cell emissivity": 0.95, + "Cell thermal expansion coefficient [m.K-1]": 1.1e-06, + "Negative current collector conductivity [S.m-1]": 58411000.0, + "Positive current collector conductivity [S.m-1]": 36914000.0, + "Negative current collector density [kg.m-3]": 8960.0, + "Positive current collector density [kg.m-3]": 2700.0, + "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, + "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, + "Negative current collector thermal conductivity [W.m-1.K-1]": 401.0, + "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, + "Nominal cell capacity [A.h]": 2.28, + "Typical current [A]": 2.28, + "Current function [A]": 2.28, + "Negative particle radius [m]": 5e-06, + "Positive particle radius [m]": 3e-06, + "Typical electrolyte concentration [mol.m-3]": 1000.0, + "Initial concentration in electrolyte [mol.m-3]": 1000.0, + "Cation transference number": 0.38, + "1 + dlnf/dlnc": dlnf_dlnc_Ai2020, + "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Ai2020, + "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Ai2020, + "Reference temperature [K]": 298.15, + "Total heat transfer coefficient [W.m-2.K-1]": 35.0, + "Ambient temperature [K]": 298.15, + "Number of electrodes connected in parallel to make a cell": 34.0, + "Number of cells connected in series to make a battery": 1.0, + "Lower voltage cut-off [V]": 3.0, + "Upper voltage cut-off [V]": 4.2, + "Initial temperature [K]": 298.15, + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Chen2020.py b/pybamm/input/parameters/lithium_ion/Chen2020.py index b75afbf904..b6073b595c 100644 --- a/pybamm/input/parameters/lithium_ion/Chen2020.py +++ b/pybamm/input/parameters/lithium_ion/Chen2020.py @@ -1,3 +1,6 @@ +import pybamm + + def graphite_LGM50_ocp_Chen2020(sto): """ LG M50 Graphite open-circuit potential as a function of stochiometry, fit taken @@ -22,16 +25,15 @@ def graphite_LGM50_ocp_Chen2020(sto): """ u_eq = ( - 1.9793 * exp(-39.3631 * sto) + 1.9793 * pybamm.exp(-39.3631 * sto) + 0.2482 - - 0.0909 * tanh(29.8538 * (sto - 0.1234)) - - 0.04478 * tanh(14.9159 * (sto - 0.2769)) - - 0.0205 * tanh(30.4444 * (sto - 0.6103)) + - 0.0909 * pybamm.tanh(29.8538 * (sto - 0.1234)) + - 0.04478 * pybamm.tanh(14.9159 * (sto - 0.2769)) + - 0.0205 * pybamm.tanh(30.4444 * (sto - 0.6103)) ) return u_eq - def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( c_e, c_s_surf, c_s_max, T ): @@ -64,13 +66,12 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( """ m_ref = 6.48e-7 # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 35000 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def nmc_LGM50_ocp_Chen2020(sto): """ LG M50 NMC open circuit potential as a function of stochiometry, fit taken @@ -97,14 +98,13 @@ def nmc_LGM50_ocp_Chen2020(sto): u_eq = ( -0.8090 * sto + 4.4875 - - 0.0428 * tanh(18.5138 * (sto - 0.5542)) - - 17.7326 * tanh(15.7890 * (sto - 0.3117)) - + 17.5842 * tanh(15.9308 * (sto - 0.3120)) + - 0.0428 * pybamm.tanh(18.5138 * (sto - 0.5542)) + - 17.7326 * pybamm.tanh(15.7890 * (sto - 0.3117)) + + 17.5842 * pybamm.tanh(15.9308 * (sto - 0.3120)) ) return u_eq - def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -135,13 +135,12 @@ def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_m """ m_ref = 3.42e-6 # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 17800 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def electrolyte_diffusivity_Nyman2008(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -172,7 +171,6 @@ def electrolyte_diffusivity_Nyman2008(c_e, T): return D_c_e - def electrolyte_conductivity_Nyman2008(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -208,104 +206,108 @@ def electrolyte_conductivity_Nyman2008(c_e, T): def get_parameter_values(): return { - "1 + dlnf/dlnc": 1.0, - "Ambient temperature [K]": 298.15, - "Bulk solvent concentration [mol.m-3]": 2636.0, - "Cation transference number": 0.2594, - "Cell cooling surface area [m2]": 0.00531, - "Cell thermal expansion coefficient [m.K-1]": 1.1e-06, - "Cell volume [m3]": 2.42e-05, - "Current function [A]": 5.0, - "EC diffusivity [m2.s-1]": 2e-18, - "EC initial concentration in electrolyte [mol.m-3]": 4541.0, - "Electrode height [m]": 0.065, - "Electrode width [m]": 1.58, - "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Nyman2008, - "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Nyman2008, - "Initial concentration in electrolyte [mol.m-3]": 1000.0, - "Initial concentration in negative electrode [mol.m-3]": 29866.0, - "Initial concentration in positive electrode [mol.m-3]": 17038.0, - "Initial inner SEI thickness [m]": 2.5e-09, - "Initial outer SEI thickness [m]": 2.5e-09, - "Initial temperature [K]": 298.15, - "Inner SEI electron conductivity [S.m-1]": 8.95e-14, - "Inner SEI lithium interstitial diffusivity [m2.s-1]": 1e-20, - "Inner SEI open-circuit potential [V]": 0.1, - "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, - "Inner SEI reaction proportion": 0.5, - "Lithium interstitial reference concentration [mol.m-3]": 15.0, - "Lower voltage cut-off [V]": 2.5, + # Negative electrode + "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Negative electrode thickness [m]": 8.52e-05, + "Negative electrode conductivity [S.m-1]": 215.0, "Maximum concentration in negative electrode [mol.m-3]": 33133.0, - "Maximum concentration in positive electrode [mol.m-3]": 63104.0, - "Negative current collector conductivity [S.m-1]": 58411000.0, - "Negative current collector density [kg.m-3]": 8960.0, - "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, - "Negative current collector thermal conductivity [W.m-1.K-1]": 401.0, - "Negative current collector thickness [m]": 1.2e-05, - "Negative electrode Bruggeman coefficient (electrode)": 1.5, - "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, + "Negative electrode diffusivity [m2.s-1]": 3.3e-14, "Negative electrode OCP [V]": graphite_LGM50_ocp_Chen2020, - "Negative electrode OCP entropic change [V.K-1]": 0.0, + "Negative electrode porosity": 0.25, "Negative electrode active material volume fraction": 0.75, + "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, + "Negative electrode Bruggeman coefficient (electrode)": 1.5, "Negative electrode cation signed stoichiometry": -1.0, + "Negative electrode electrons in reaction": 1.0, "Negative electrode charge transfer coefficient": 0.5, - "Negative electrode conductivity [S.m-1]": 215.0, - "Negative electrode density [kg.m-3]": 1657.0, - "Negative electrode diffusivity [m2.s-1]": 3.3e-14, "Negative electrode double-layer capacity [F.m-2]": 0.2, - "Negative electrode electrons in reaction": 1.0, "Negative electrode exchange-current density [A.m-2]": graphite_LGM50_electrolyte_exchange_current_density_Chen2020, - "Negative electrode porosity": 0.25, - "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Negative electrode density [kg.m-3]": 1657.0, "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, - "Negative electrode thickness [m]": 8.52e-05, - "Negative particle radius [m]": 5.86e-06, - "Nominal cell capacity [A.h]": 5.0, - "Number of cells connected in series to make a battery": 1.0, - "Number of electrodes connected in parallel to make a cell": 1.0, - "Outer SEI open-circuit potential [V]": 0.8, - "Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, - "Outer SEI solvent diffusivity [m2.s-1]": 2.5000000000000002e-22, - "Positive current collector conductivity [S.m-1]": 36914000.0, - "Positive current collector density [kg.m-3]": 2700.0, - "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, - "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, - "Positive current collector thickness [m]": 1.6e-05, - "Positive electrode Bruggeman coefficient (electrode)": 1.5, - "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, + "Negative electrode OCP entropic change [V.K-1]": 0.0, + "Initial concentration in negative electrode [mol.m-3]": 29866.0, + # Separator + "Separator thickness [m]": 1.2e-05, + "Separator porosity": 0.47, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator density [kg.m-3]": 397.0, + "Separator specific heat capacity [J.kg-1.K-1]": 700.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.16, + # Positive electrode + "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Positive electrode thickness [m]": 7.56e-05, + "Positive electrode conductivity [S.m-1]": 0.18, + "Maximum concentration in positive electrode [mol.m-3]": 63104.0, + "Positive electrode diffusivity [m2.s-1]": 4e-15, "Positive electrode OCP [V]": nmc_LGM50_ocp_Chen2020, - "Positive electrode OCP entropic change [V.K-1]": 0.0, + "Positive electrode porosity": 0.335, "Positive electrode active material volume fraction": 0.665, + "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, + "Positive electrode Bruggeman coefficient (electrode)": 1.5, "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode electrons in reaction": 1.0, "Positive electrode charge transfer coefficient": 0.5, - "Positive electrode conductivity [S.m-1]": 0.18, - "Positive electrode density [kg.m-3]": 3262.0, - "Positive electrode diffusivity [m2.s-1]": 4e-15, "Positive electrode double-layer capacity [F.m-2]": 0.2, - "Positive electrode electrons in reaction": 1.0, "Positive electrode exchange-current density [A.m-2]": nmc_LGM50_electrolyte_exchange_current_density_Chen2020, - "Positive electrode porosity": 0.335, - "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Positive electrode density [kg.m-3]": 3262.0, "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, - "Positive electrode thickness [m]": 7.56e-05, - "Positive particle radius [m]": 5.22e-06, + "Positive electrode OCP entropic change [V.K-1]": 0.0, + "Initial concentration in positive electrode [mol.m-3]": 17038.0, + # Other "Ratio of lithium moles to SEI moles": 2.0, - "Reference temperature [K]": 298.15, - "SEI growth activation energy [J.mol-1]": 0.0, - "SEI kinetic rate constant [m.s-1]": 1e-12, - "SEI open-circuit potential [V]": 0.4, + "Inner SEI reaction proportion": 0.5, + "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, "SEI reaction exchange current density [A.m-2]": 1.5e-07, "SEI resistivity [Ohm.m]": 200000.0, - "Separator Bruggeman coefficient (electrolyte)": 1.5, - "Separator density [kg.m-3]": 397.0, - "Separator porosity": 0.47, - "Separator specific heat capacity [J.kg-1.K-1]": 700.0, - "Separator thermal conductivity [W.m-1.K-1]": 0.16, - "Separator thickness [m]": 1.2e-05, - "Total heat transfer coefficient [W.m-2.K-1]": 10.0, + "Outer SEI solvent diffusivity [m2.s-1]": 2.5000000000000002e-22, + "Bulk solvent concentration [mol.m-3]": 2636.0, + "Inner SEI open-circuit potential [V]": 0.1, + "Outer SEI open-circuit potential [V]": 0.8, + "Inner SEI electron conductivity [S.m-1]": 8.95e-14, + "Inner SEI lithium interstitial diffusivity [m2.s-1]": 1e-20, + "Lithium interstitial reference concentration [mol.m-3]": 15.0, + "Initial inner SEI thickness [m]": 2.5e-09, + "Initial outer SEI thickness [m]": 2.5e-09, + "EC initial concentration in electrolyte [mol.m-3]": 4541.0, + "EC diffusivity [m2.s-1]": 2e-18, + "SEI kinetic rate constant [m.s-1]": 1e-12, + "SEI open-circuit potential [V]": 0.4, + "SEI growth activation energy [J.mol-1]": 0.0, + "Negative current collector thickness [m]": 1.2e-05, + "Positive current collector thickness [m]": 1.6e-05, + "Electrode height [m]": 0.065, + "Electrode width [m]": 1.58, + "Cell cooling surface area [m2]": 0.00531, + "Cell volume [m3]": 2.42e-05, + "Cell thermal expansion coefficient [m.K-1]": 1.1e-06, + "Negative current collector conductivity [S.m-1]": 58411000.0, + "Positive current collector conductivity [S.m-1]": 36914000.0, + "Negative current collector density [kg.m-3]": 8960.0, + "Positive current collector density [kg.m-3]": 2700.0, + "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, + "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, + "Negative current collector thermal conductivity [W.m-1.K-1]": 401.0, + "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, + "Nominal cell capacity [A.h]": 5.0, "Typical current [A]": 5.0, + "Current function [A]": 5.0, + "Negative particle radius [m]": 5.86e-06, + "Positive particle radius [m]": 5.22e-06, "Typical electrolyte concentration [mol.m-3]": 1000.0, + "Initial concentration in electrolyte [mol.m-3]": 1000.0, + "Cation transference number": 0.2594, + "1 + dlnf/dlnc": 1.0, + "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Nyman2008, + "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Nyman2008, + "Reference temperature [K]": 298.15, + "Total heat transfer coefficient [W.m-2.K-1]": 10.0, + "Ambient temperature [K]": 298.15, + "Number of electrodes connected in parallel to make a cell": 1.0, + "Number of cells connected in series to make a battery": 1.0, + "Lower voltage cut-off [V]": 2.5, "Upper voltage cut-off [V]": 4.2, - } + "Initial temperature [K]": 298.15, + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Chen2020_composite.py b/pybamm/input/parameters/lithium_ion/Chen2020_composite.py index fb51f76405..08bd760313 100644 --- a/pybamm/input/parameters/lithium_ion/Chen2020_composite.py +++ b/pybamm/input/parameters/lithium_ion/Chen2020_composite.py @@ -1,3 +1,7 @@ +import pybamm +import numpy as np + + def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( c_e, c_s_surf, c_s_max, T ): @@ -30,7 +34,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( """ m_ref = 6.48e-7 # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 35000 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 @@ -157,7 +161,7 @@ def silicon_LGM50_electrolyte_exchange_current_density_Chen2020( 6.48e-7 * 28700 / 278000 ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 35000 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 @@ -189,9 +193,9 @@ def nmc_LGM50_ocp_Chen2020(sto): u_eq = ( -0.8090 * sto + 4.4875 - - 0.0428 * tanh(18.5138 * (sto - 0.5542)) - - 17.7326 * tanh(15.7890 * (sto - 0.3117)) - + 17.5842 * tanh(15.9308 * (sto - 0.3120)) + - 0.0428 * pybamm.tanh(18.5138 * (sto - 0.5542)) + - 17.7326 * pybamm.tanh(15.7890 * (sto - 0.3117)) + + 17.5842 * pybamm.tanh(15.9308 * (sto - 0.3120)) ) return u_eq @@ -226,7 +230,7 @@ def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_m """ m_ref = 3.42e-6 # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 17800 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 @@ -294,173 +298,125 @@ def electrolyte_conductivity_Nyman2008(c_e, T): return sigma_e +graphite_ocp_Enertech_Ai2020_filename = pybamm.get_parameters_filepath('pybamm/input/parameters/lithium_ion/graphite_ocp_Enertech_Ai2020.csv') +graphite_ocp_Enertech_Ai2020 = np.loadtxt(graphite_ocp_Enertech_Ai2020_filename, delimiter=',') + def get_parameter_values(): - return {'1 + dlnf/dlnc': 1.0, - 'Ambient temperature [K]': 298.15, - 'Cation transference number': 0.2594, - 'Cell cooling surface area [m2]': 0.00531, - 'Cell thermal expansion coefficient [m.K-1]': 1.1e-06, - 'Cell volume [m3]': 2.42e-05, - 'Current function [A]': 5.0, - 'Electrode height [m]': 0.065, - 'Electrode width [m]': 1.58, - 'Electrolyte conductivity [S.m-1]': electrolyte_conductivity_Nyman2008, - 'Electrolyte diffusivity [m2.s-1]': electrolyte_diffusivity_Nyman2008, - 'Initial concentration in electrolyte [mol.m-3]': 1000.0, - 'Initial concentration in negative electrode [mol.m-3]': 29866.0, - 'Initial concentration in positive electrode [mol.m-3]': 17038.0, - 'Initial temperature [K]': 298.15, - 'Lower voltage cut-off [V]': 2.5, - 'Maximum concentration in positive electrode [mol.m-3]': 63104.0, - 'Negative current collector conductivity [S.m-1]': 58411000.0, - 'Negative current collector density [kg.m-3]': 8960.0, - 'Negative current collector specific heat capacity [J.kg-1.K-1]': 385.0, - 'Negative current collector thermal conductivity [W.m-1.K-1]': 401.0, - 'Negative current collector thickness [m]': 1.2e-05, - 'Negative electrode Bruggeman coefficient (electrode)': 1.5, - 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5, - 'Negative electrode cation signed stoichiometry': -1.0, - 'Negative electrode charge transfer coefficient': 0.5, - 'Negative electrode conductivity [S.m-1]': 215.0, - 'Negative electrode double-layer capacity [F.m-2]': 0.2, - 'Negative electrode porosity': 0.25, - 'Negative electrode specific heat capacity [J.kg-1.K-1]': 700.0, - 'Negative electrode thermal conductivity [W.m-1.K-1]': 1.7, - 'Negative electrode thickness [m]': 8.52e-05, - 'Nominal cell capacity [A.h]': 5.0, - 'Number of cells connected in series to make a battery': 1.0, - 'Number of electrodes connected in parallel to make a cell': 1.0, - 'Positive current collector conductivity [S.m-1]': 36914000.0, - 'Positive current collector density [kg.m-3]': 2700.0, - 'Positive current collector specific heat capacity [J.kg-1.K-1]': 897.0, - 'Positive current collector thermal conductivity [W.m-1.K-1]': 237.0, - 'Positive current collector thickness [m]': 1.6e-05, - 'Positive electrode Bruggeman coefficient (electrode)': 1.5, - 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5, - 'Positive electrode OCP [V]': nmc_LGM50_ocp_Chen2020, - 'Positive electrode OCP entropic change [V.K-1]': 0.0, - 'Positive electrode active material volume fraction': 0.665, - 'Positive electrode cation signed stoichiometry': -1.0, - 'Positive electrode charge transfer coefficient': 0.5, - 'Positive electrode conductivity [S.m-1]': 0.18, - 'Positive electrode density [kg.m-3]': 3262.0, - 'Positive electrode diffusivity [m2.s-1]': 4e-15, - 'Positive electrode double-layer capacity [F.m-2]': 0.2, - 'Positive electrode electrons in reaction': 1.0, - 'Positive electrode exchange-current density [A.m-2]': nmc_LGM50_electrolyte_exchange_current_density_Chen2020, - 'Positive electrode porosity': 0.335, - 'Positive electrode specific heat capacity [J.kg-1.K-1]': 700.0, - 'Positive electrode thermal conductivity [W.m-1.K-1]': 2.1, - 'Positive electrode thickness [m]': 7.56e-05, - 'Positive particle radius [m]': 5.22e-06, - 'Primary: EC diffusivity [m2.s-1]': 2e-18, - 'Primary: EC initial concentration in electrolyte [mol.m-3]': 4541.0, - 'Primary: Initial concentration in negative electrode [mol.m-3]': 27700.0, - 'Primary: Initial inner SEI thickness [m]': 2.5e-09, - 'Primary: Initial outer SEI thickness [m]': 2.5e-09, - 'Primary: Inner SEI partial molar volume [m3.mol-1]': 9.585e-05, - 'Primary: Maximum concentration in negative electrode [mol.m-3]': 28700.0, - 'Primary: Negative electrode OCP [V]': ('graphite_ocp_Enertech_Ai2020, - ([array([0.00000000e+00, 5.00000000e-04, 1.27041000e-03, 1.52479000e-03, - 1.90595000e-03, 2.22355800e-03, 4.06054700e-03, 4.82015100e-03, - 6.46394300e-03, 7.41337000e-03, 8.61650600e-03, 9.12341700e-03, - 1.07682260e-02, 1.26650460e-02, 1.41183440e-02, 1.77867520e-02, - 2.06946900e-02, 2.39837990e-02, 3.05021750e-02, 3.60011350e-02, - 3.96066620e-02, 5.91480830e-02, 6.12979420e-02, 7.13498330e-02, - 8.02655260e-02, 1.19208079e-01, 1.28120548e-01, 1.34253707e-01, - 1.41584594e-01, 1.50874177e-01, 1.60609131e-01, 1.70345957e-01, - 1.89747769e-01, 2.09222253e-01, 2.19017730e-01, 2.28756579e-01, - 2.38552575e-01, 2.48349231e-01, 2.58084023e-01, 2.67821184e-01, - 2.87415350e-01, 2.97209811e-01, 3.07004942e-01, 3.16798396e-01, - 3.26534032e-01, 3.36321558e-01, 3.46061758e-01, 3.55856392e-01, - 3.65593044e-01, 3.75388012e-01, 3.85120781e-01, 3.94915577e-01, - 4.04717479e-01, 4.14512102e-01, 4.24244871e-01, 4.34039331e-01, - 4.43770240e-01, 4.53564862e-01, 4.63298139e-01, 4.73034456e-01, - 4.82766544e-01, 4.92564552e-01, 5.02302892e-01, 5.12042595e-01, - 5.21833161e-01, 5.31572182e-01, 5.41369033e-01, 5.51104831e-01, - 5.60899800e-01, 5.70635608e-01, 5.80434806e-01, 5.90235692e-01, - 5.99977407e-01, 6.09716266e-01, 6.19517822e-01, 6.29313635e-01, - 6.39049108e-01, 6.48790152e-01, 6.58584104e-01, 6.68320248e-01, - 6.78055040e-01, 6.87851869e-01, 6.97649380e-01, 7.07389072e-01, - 7.17188097e-01, 7.26977148e-01, 7.36776336e-01, 7.46515866e-01, - 7.56259106e-01, 7.66055091e-01, 7.75789039e-01, 7.85537861e-01, - 7.95329790e-01, 8.05080646e-01, 8.14827099e-01, 8.24570003e-01, - 8.34370889e-01, 8.44173289e-01, 8.53913187e-01, 8.63650510e-01, - 8.73392073e-01, 8.83126865e-01, 8.92918286e-01, 9.02708516e-01, - 9.12443308e-01, 9.22232533e-01, 9.32019724e-01, 9.41812832e-01, - 9.51602392e-01, 9.61392795e-01, 9.70177652e-01, 9.76051358e-01, - 9.80413449e-01, 9.83887804e-01, 9.86792703e-01, 9.89255096e-01, - 9.91401407e-01, 9.93359929e-01, 9.95130154e-01, 9.96776304e-01, - 9.98229440e-01, 9.99241066e-01, 9.99746961e-01, 9.99936448e-01, - 1.00000000e+00])], - array([3.5 , 3. , 1.04 , 1.01 , 0.97265384, - 0.94249055, 0.81624059, 0.78028093, 0.71896262, 0.69137476, - 0.66139178, 0.64996223, 0.6165173 , 0.58331086, 0.56083078, - 0.51243948, 0.48025136, 0.44849587, 0.39598881, 0.35950768, - 0.33847798, 0.25631956, 0.25117361, 0.23605532, 0.23100922, - 0.2232966 , 0.21828424, 0.21327386, 0.20822836, 0.20320974, - 0.19862098, 0.19381638, 0.18416691, 0.17679053, 0.17383044, - 0.17096326, 0.1679035 , 0.16464998, 0.16149133, 0.15859383, - 0.15339916, 0.15100232, 0.14886213, 0.14691891, 0.14532814, - 0.14400211, 0.14290212, 0.14201426, 0.14131601, 0.1407591 , - 0.14031432, 0.13994232, 0.13961785, 0.13932541, 0.13905101, - 0.1387793 , 0.13851741, 0.1382589 , 0.13798129, 0.13767223, - 0.13732933, 0.13690322, 0.13639024, 0.13575758, 0.1349471 , - 0.13392324, 0.13262168, 0.13098947, 0.12896492, 0.12654999, - 0.12374288, 0.12077083, 0.11792963, 0.11537998, 0.11320542, - 0.11136648, 0.10985549, 0.10857895, 0.10752068, 0.10663254, - 0.10589376, 0.10526061, 0.10471319, 0.10425437, 0.10384562, - 0.10347712, 0.10315393, 0.10285654, 0.10258744, 0.10233828, - 0.10210199, 0.1018809 , 0.10167642, 0.10146588, 0.10126417, - 0.10106263, 0.10087041, 0.10068096, 0.10048922, 0.10030044, - 0.10009972, 0.0998771 , 0.09962899, 0.09933262, 0.09895842, - 0.09844254, 0.09768364, 0.096492 , 0.09451079, 0.09113682, - 0.08611519, 0.08107875, 0.07604037, 0.07099153, 0.06589833, - 0.06084405, 0.05581012, 0.0506707 , 0.0455624 , 0.04039266, - 0.03526127, 0.03024266, 0.02485077, 0.0192515 , 0.00499468]))), - 'Primary: Negative electrode OCP entropic change [V.K-1]': 0.0, - 'Primary: Negative electrode active material volume fraction': 0.735, - 'Primary: Negative electrode density [kg.m-3]': 1657.0, - 'Primary: Negative electrode diffusivity [m2.s-1]': 5.5e-14, - 'Primary: Negative electrode electrons in reaction': 1.0, - 'Primary: Negative electrode exchange-current density [A.m-2]': graphite_LGM50_electrolyte_exchange_current_density_Chen2020, - 'Primary: Negative particle radius [m]': 5.86e-06, - 'Primary: Outer SEI partial molar volume [m3.mol-1]': 9.585e-05, - 'Primary: Ratio of lithium moles to SEI moles': 2.0, - 'Primary: SEI growth activation energy [J.mol-1]': 0.0, - 'Primary: SEI kinetic rate constant [m.s-1]': 1e-12, - 'Primary: SEI open-circuit potential [V]': 0.4, - 'Primary: SEI resistivity [Ohm.m]': 200000.0, - 'Reference temperature [K]': 298.15, - 'Secondary: EC diffusivity [m2.s-1]': 2e-18, - 'Secondary: EC initial concentration in electrolyte [mol.m-3]': 4541.0, - 'Secondary: Initial concentration in negative electrode [mol.m-3]': 276610.0, - 'Secondary: Initial inner SEI thickness [m]': 2.5e-09, - 'Secondary: Initial outer SEI thickness [m]': 2.5e-09, - 'Secondary: Inner SEI partial molar volume [m3.mol-1]': 9.585e-05, - 'Secondary: Maximum concentration in negative electrode [mol.m-3]': 278000.0, - 'Secondary: Negative electrode OCP entropic change [V.K-1]': 0.0, - 'Secondary: Negative electrode active material volume fraction': 0.015, - 'Secondary: Negative electrode delithiation OCP [V]': silicon_ocp_delithiation_Mark2016, - 'Secondary: Negative electrode density [kg.m-3]': 2650.0, - 'Secondary: Negative electrode diffusivity [m2.s-1]': 1.67e-14, - 'Secondary: Negative electrode electrons in reaction': 1.0, - 'Secondary: Negative electrode exchange-current density [A.m-2]': silicon_LGM50_electrolyte_exchange_current_density_Chen2020, - 'Secondary: Negative electrode lithiation OCP [V]': silicon_ocp_lithiation_Mark2016, - 'Secondary: Negative particle radius [m]': 1.52e-06, - 'Secondary: Outer SEI partial molar volume [m3.mol-1]': 9.585e-05, - 'Secondary: Ratio of lithium moles to SEI moles': 2.0, - 'Secondary: SEI growth activation energy [J.mol-1]': 0.0, - 'Secondary: SEI kinetic rate constant [m.s-1]': 1e-12, - 'Secondary: SEI open-circuit potential [V]': 0.4, - 'Secondary: SEI resistivity [Ohm.m]': 200000.0, - 'Separator Bruggeman coefficient (electrolyte)': 1.5, - 'Separator density [kg.m-3]': 397.0, - 'Separator porosity': 0.47, - 'Separator specific heat capacity [J.kg-1.K-1]': 700.0, - 'Separator thermal conductivity [W.m-1.K-1]': 0.16, - 'Separator thickness [m]': 1.2e-05, - 'Total heat transfer coefficient [W.m-2.K-1]': 10.0, - 'Typical current [A]': 5.0, - 'Typical electrolyte concentration [mol.m-3]': 1000.0, - 'Upper voltage cut-off [V]': 4.2} \ No newline at end of file + return { + # Negative electrode + "Negative electrode thickness [m]": 8.52e-05, + "Negative electrode conductivity [S.m-1]": 215.0, + "Primary: Maximum concentration in negative electrode [mol.m-3]": 28700.0, + "Primary: Initial concentration in negative electrode [mol.m-3]": 27700.0, + "Primary: Negative electrode diffusivity [m2.s-1]": 5.5e-14, + "Primary: Negative electrode OCP [V]": ('graphite_ocp_Enertech_Ai2020', graphite_ocp_Enertech_Ai2020), + "Negative electrode porosity": 0.25, + "Primary: Negative electrode active material volume fraction": 0.735, + "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, + "Negative electrode Bruggeman coefficient (electrode)": 1.5, + "Negative electrode cation signed stoichiometry": -1.0, + "Primary: Negative electrode electrons in reaction": 1.0, + "Negative electrode charge transfer coefficient": 0.5, + "Negative electrode double-layer capacity [F.m-2]": 0.2, + "Primary: Negative electrode exchange-current density [A.m-2]": graphite_LGM50_electrolyte_exchange_current_density_Chen2020, + "Primary: Negative electrode density [kg.m-3]": 1657.0, + "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, + "Primary: Negative electrode OCP entropic change [V.K-1]": 0.0, + "Secondary: Maximum concentration in negative electrode [mol.m-3]": 278000.0, + "Secondary: Initial concentration in negative electrode [mol.m-3]": 276610.0, + "Secondary: Negative electrode diffusivity [m2.s-1]": 1.67e-14, + "Secondary: Negative electrode lithiation OCP [V]": silicon_ocp_lithiation_Mark2016, + "Secondary: Negative electrode delithiation OCP [V]": silicon_ocp_delithiation_Mark2016, + "Secondary: Negative electrode active material volume fraction": 0.015, + "Secondary: Negative electrode electrons in reaction": 1.0, + "Secondary: Negative electrode exchange-current density [A.m-2]": silicon_LGM50_electrolyte_exchange_current_density_Chen2020, + "Secondary: Negative electrode density [kg.m-3]": 2650.0, + "Secondary: Negative electrode OCP entropic change [V.K-1]": 0.0, + "Initial concentration in negative electrode [mol.m-3]": 29866.0, + # Separator + "Separator thickness [m]": 1.2e-05, + "Separator porosity": 0.47, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator density [kg.m-3]": 397.0, + "Separator specific heat capacity [J.kg-1.K-1]": 700.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.16, + # Positive electrode + "Positive electrode thickness [m]": 7.56e-05, + "Positive electrode conductivity [S.m-1]": 0.18, + "Maximum concentration in positive electrode [mol.m-3]": 63104.0, + "Positive electrode diffusivity [m2.s-1]": 4e-15, + "Positive electrode OCP [V]": nmc_LGM50_ocp_Chen2020, + "Positive electrode porosity": 0.335, + "Positive electrode active material volume fraction": 0.665, + "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, + "Positive electrode Bruggeman coefficient (electrode)": 1.5, + "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode electrons in reaction": 1.0, + "Positive electrode charge transfer coefficient": 0.5, + "Positive electrode double-layer capacity [F.m-2]": 0.2, + "Positive electrode exchange-current density [A.m-2]": nmc_LGM50_electrolyte_exchange_current_density_Chen2020, + "Positive electrode density [kg.m-3]": 3262.0, + "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, + "Positive electrode OCP entropic change [V.K-1]": 0.0, + "Initial concentration in positive electrode [mol.m-3]": 17038.0, + # Other + "Primary: Ratio of lithium moles to SEI moles": 2.0, + "Primary: Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Primary: Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Primary: SEI resistivity [Ohm.m]": 200000.0, + "Primary: Initial inner SEI thickness [m]": 2.5e-09, + "Primary: Initial outer SEI thickness [m]": 2.5e-09, + "Primary: EC initial concentration in electrolyte [mol.m-3]": 4541.0, + "Primary: EC diffusivity [m2.s-1]": 2e-18, + "Primary: SEI kinetic rate constant [m.s-1]": 1e-12, + "Primary: SEI open-circuit potential [V]": 0.4, + "Primary: SEI growth activation energy [J.mol-1]": 0.0, + "Secondary: Ratio of lithium moles to SEI moles": 2.0, + "Secondary: Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Secondary: Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Secondary: SEI resistivity [Ohm.m]": 200000.0, + "Secondary: Initial inner SEI thickness [m]": 2.5e-09, + "Secondary: Initial outer SEI thickness [m]": 2.5e-09, + "Secondary: EC initial concentration in electrolyte [mol.m-3]": 4541.0, + "Secondary: EC diffusivity [m2.s-1]": 2e-18, + "Secondary: SEI kinetic rate constant [m.s-1]": 1e-12, + "Secondary: SEI open-circuit potential [V]": 0.4, + "Secondary: SEI growth activation energy [J.mol-1]": 0.0, + "Negative current collector thickness [m]": 1.2e-05, + "Positive current collector thickness [m]": 1.6e-05, + "Electrode height [m]": 0.065, + "Electrode width [m]": 1.58, + "Cell cooling surface area [m2]": 0.00531, + "Cell volume [m3]": 2.42e-05, + "Cell thermal expansion coefficient [m.K-1]": 1.1e-06, + "Negative current collector conductivity [S.m-1]": 58411000.0, + "Positive current collector conductivity [S.m-1]": 36914000.0, + "Negative current collector density [kg.m-3]": 8960.0, + "Positive current collector density [kg.m-3]": 2700.0, + "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, + "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, + "Negative current collector thermal conductivity [W.m-1.K-1]": 401.0, + "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, + "Nominal cell capacity [A.h]": 5.0, + "Typical current [A]": 5.0, + "Current function [A]": 5.0, + "Primary: Negative particle radius [m]": 5.86e-06, + "Secondary: Negative particle radius [m]": 1.52e-06, + "Positive particle radius [m]": 5.22e-06, + "Typical electrolyte concentration [mol.m-3]": 1000.0, + "Initial concentration in electrolyte [mol.m-3]": 1000.0, + "Cation transference number": 0.2594, + "1 + dlnf/dlnc": 1.0, + "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Nyman2008, + "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Nyman2008, + "Reference temperature [K]": 298.15, + "Total heat transfer coefficient [W.m-2.K-1]": 10.0, + "Ambient temperature [K]": 298.15, + "Number of electrodes connected in parallel to make a cell": 1.0, + "Number of cells connected in series to make a battery": 1.0, + "Lower voltage cut-off [V]": 2.5, + "Upper voltage cut-off [V]": 4.2, + "Initial temperature [K]": 298.15, + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Ecker2015.py b/pybamm/input/parameters/lithium_ion/Ecker2015.py index 959703f315..5b44f9dec2 100644 --- a/pybamm/input/parameters/lithium_ion/Ecker2015.py +++ b/pybamm/input/parameters/lithium_ion/Ecker2015.py @@ -1,3 +1,7 @@ +import pybamm +import numpy as np + + def graphite_diffusivity_Ecker2015(sto, T): """ Graphite diffusivity as a function of stochiometry [1, 2, 3]. @@ -27,9 +31,9 @@ def graphite_diffusivity_Ecker2015(sto, T): Solid diffusivity """ - D_ref = 8.4e-13 * exp(-11.3 * sto) + 8.2e-15 + D_ref = 8.4e-13 * pybamm.exp(-11.3 * sto) + 8.2e-15 E_D_s = 3.03e4 - arrhenius = exp(-E_D_s / (constants.R * T)) * exp(E_D_s / (constants.R * 296)) + arrhenius = pybamm.exp(-E_D_s / (pybamm.constants.R * T)) * pybamm.exp(E_D_s / (pybamm.constants.R * 296)) return D_ref * arrhenius @@ -82,12 +86,12 @@ def graphite_ocp_Ecker2015_function(sto): t = 0.196176 u_eq = ( - a * exp(-b * sto) - + c * exp(-d * (sto - e)) - - r * tanh(s * (sto - t)) - - g * tanh(h * (sto - i)) - - j * tanh(k * (sto - m)) - - n * exp(o * (sto - p)) + a * pybamm.exp(-b * sto) + + c * pybamm.exp(-d * (sto - e)) + - r * pybamm.tanh(s * (sto - t)) + - g * pybamm.tanh(h * (sto - i)) + - j * pybamm.tanh(k * (sto - m)) + - n * pybamm.exp(o * (sto - p)) + q ) @@ -130,10 +134,10 @@ def graphite_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_m k_ref = 1.11 * 1e-10 # multiply by Faraday's constant to get correct units - m_ref = constants.F * k_ref # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = pybamm.constants.F * k_ref # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 53400 - arrhenius = exp(-E_r / (constants.R * T)) * exp(E_r / (constants.R * 296.15)) + arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp(E_r / (pybamm.constants.R * 296.15)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 @@ -168,9 +172,9 @@ def nco_diffusivity_Ecker2015(sto, T): Solid diffusivity """ - D_ref = 3.7e-13 - 3.4e-13 * exp(-12 * (sto - 0.62) * (sto - 0.62)) + D_ref = 3.7e-13 - 3.4e-13 * pybamm.exp(-12 * (sto - 0.62) * (sto - 0.62)) E_D_s = 8.06e4 - arrhenius = exp(-E_D_s / (constants.R * T)) * exp(E_D_s / (constants.R * 296.15)) + arrhenius = pybamm.exp(-E_D_s / (pybamm.constants.R * T)) * pybamm.exp(E_D_s / (pybamm.constants.R * 296.15)) return D_ref * arrhenius @@ -220,11 +224,11 @@ def nco_ocp_Ecker2015_function(sto): u_eq = ( a * sto - - c * tanh(d * (sto - e)) - - r * tanh(s * (sto - t)) - - g * tanh(h * (sto - i)) - - j * tanh(k * (sto - m)) - - n * tanh(o * (sto - p)) + - c * pybamm.tanh(d * (sto - e)) + - r * pybamm.tanh(s * (sto - t)) + - g * pybamm.tanh(h * (sto - i)) + - j * pybamm.tanh(k * (sto - m)) + - n * pybamm.tanh(o * (sto - p)) + q ) return u_eq @@ -266,10 +270,10 @@ def nco_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_max, T k_ref = 3.01e-11 # multiply by Faraday's constant to get correct units - m_ref = constants.F * k_ref # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = pybamm.constants.F * k_ref # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 4.36e4 - arrhenius = exp(-E_r / (constants.R * T)) * exp(E_r / (constants.R * 296.15)) + arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp(E_r / (pybamm.constants.R * 296.15)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 @@ -306,9 +310,9 @@ def electrolyte_diffusivity_Ecker2015(c_e, T): # The diffusivity epends on the electrolyte conductivity inputs = {"Electrolyte concentration [mol.m-3]": c_e, "Temperature [K]": T} - sigma_e = pybamm.FunctionParameter("Electrolyte conductivity [S.m-1]", inputs) + sigma_e = pybamm.Functionpybamm.Parameter("Electrolyte conductivity [S.m-1]", inputs) - D_c_e = (constants.k_b / (constants.F * constants.q_e)) * sigma_e * T / c_e + D_c_e = (pybamm.constants.k_b / (pybamm.constants.F * pybamm.constants.q_e)) * sigma_e * T / c_e return D_c_e @@ -349,173 +353,134 @@ def electrolyte_conductivity_Ecker2015(c_e, T): # add temperature dependence E_k_e = 1.71e4 - C = 296 * exp(E_k_e / (constants.R * 296)) - sigma_e = C * sigma_e_296 * exp(-E_k_e / (constants.R * T)) / T + C = 296 * pybamm.exp(E_k_e / (pybamm.constants.R * 296)) + sigma_e = C * sigma_e_296 * pybamm.exp(-E_k_e / (pybamm.constants.R * T)) / T return sigma_e +measured_graphite_diffusivity_Ecker2015_filename = pybamm.get_parameters_filepath('pybamm/input/parameters/lithium_ion/measured_graphite_diffusivity_Ecker2015.csv') +measured_graphite_diffusivity_Ecker2015 = np.loadtxt(measured_graphite_diffusivity_Ecker2015_filename, delimiter=',') +graphite_ocp_Ecker2015_filename = pybamm.get_parameters_filepath('pybamm/input/parameters/lithium_ion/graphite_ocp_Ecker2015.csv') +graphite_ocp_Ecker2015 = np.loadtxt(graphite_ocp_Ecker2015_filename, delimiter=',') +measured_nco_diffusivity_Ecker2015_filename = pybamm.get_parameters_filepath('pybamm/input/parameters/lithium_ion/measured_nco_diffusivity_Ecker2015.csv') +measured_nco_diffusivity_Ecker2015 = np.loadtxt(measured_nco_diffusivity_Ecker2015_filename, delimiter=',') +nco_ocp_Ecker2015_filename = pybamm.get_parameters_filepath('pybamm/input/parameters/lithium_ion/nco_ocp_Ecker2015.csv') +nco_ocp_Ecker2015 = np.loadtxt(nco_ocp_Ecker2015_filename, delimiter=',') + def get_parameter_values(): - return {'1 + dlnf/dlnc': 1.0, - 'Ambient temperature [K]': 298.15, - 'Bulk solvent concentration [mol.m-3]': 2636.0, - 'Cation transference number': 0.26, - 'Cell cooling surface area [m2]': 0.0172, - 'Cell volume [m3]': 1.52e-06, - 'Current function [A]': 0.15652, - 'EC diffusivity [m2.s-1]': 2e-18, - 'EC initial concentration in electrolyte [mol.m-3]': 4541.0, - 'Edge heat transfer coefficient [W.m-2.K-1]': 10.0, - 'Electrode height [m]': 0.101, - 'Electrode width [m]': 0.085, - 'Electrolyte conductivity [S.m-1]': electrolyte_conductivity_Ecker2015, - 'Electrolyte diffusivity [m2.s-1]': electrolyte_diffusivity_Ecker2015, - 'Initial concentration in electrolyte [mol.m-3]': 1000.0, - 'Initial concentration in negative electrode [mol.m-3]': 26120.05, - 'Initial concentration in positive electrode [mol.m-3]': 12630.8, - 'Initial inner SEI thickness [m]': 2.5e-09, - 'Initial outer SEI thickness [m]': 2.5e-09, - 'Initial temperature [K]': 298.15, - 'Inner SEI electron conductivity [S.m-1]': 8.95e-14, - 'Inner SEI lithium interstitial diffusivity [m2.s-1]': 1e-20, - 'Inner SEI open-circuit potential [V]': 0.1, - 'Inner SEI partial molar volume [m3.mol-1]': 9.585e-05, - 'Inner SEI reaction proportion': 0.5, - 'Lithium interstitial reference concentration [mol.m-3]': 15.0, - 'Lower voltage cut-off [V]': 2.5, - 'Maximum concentration in negative electrode [mol.m-3]': 31920.0, - 'Maximum concentration in positive electrode [mol.m-3]': 48580.0, - 'Measured negative electrode OCP [V]': ('graphite_ocp_Ecker2015, - ([array([0.00151515, 0.00606061, 0.01060606, 0.01666667, 0.02121212, - 0.02272727, 0.03030303, 0.03939394, 0.04545455, 0.0530303 , - 0.06666667, 0.07878788, 0.08939394, 0.10151515, 0.12727273, - 0.14242424, 0.15909091, 0.17727273, 0.19393939, 0.21363636, - 0.23333333, 0.25757576, 0.27878788, 0.3030303 , 0.32878788, - 0.35151515, 0.37121212, 0.39242424, 0.56818182, 0.58787879, - 0.60606061, 0.62727273, 0.65454545, 0.67424242, 0.69393939, - 0.71818182, 0.73939394, 0.89090909, 0.95606061, 0.97727273, - 1. ])], - array([1.43251534, 0.86196319, 0.79141104, 0.6595092 , 0.5797546 , - 0.52453988, 0.47546012, 0.41411043, 0.36809816, 0.33128834, - 0.28220859, 0.24846626, 0.22392638, 0.2208589 , 0.21165644, - 0.20245399, 0.1993865 , 0.19325153, 0.18404908, 0.1809816 , - 0.17177914, 0.16564417, 0.16257669, 0.15337423, 0.14110429, - 0.13496933, 0.13190184, 0.12883436, 0.12576687, 0.12269939, - 0.11656442, 0.10122699, 0.09509202, 0.09509202, 0.08895706, - 0.08895706, 0.08588957, 0.08282209, 0.08272209, 0.0797546 , - 0.07055215]))), - 'Measured negative electrode diffusivity [m2.s-1]': ('measured_graphite_diffusivity_Ecker2015, - ([array([0.04291659, 0.08025338, 0.12014957, 0.15796121, 0.19575227, - 0.23576503, 0.27144412, 0.31002889, 0.34841653, 0.38667045, - 0.42641578, 0.46418627, 0.50187791, 0.54121182, 0.57667491, - 0.61480369, 0.65458159, 0.76813993, 0.80894297, 0.88230341, - 0.92208646, 0.96075009, 0.99763602])], - array([2.53189836e-13, 4.43829239e-14, 3.19474263e-14, 2.60779630e-14, - 2.25590858e-14, 1.16865022e-14, 1.23869273e-14, 2.02919545e-14, - 3.26047164e-15, 7.64015664e-16, 8.41774737e-16, 7.71709353e-16, - 8.83792155e-16, 3.10917132e-15, 6.06218467e-15, 3.59593721e-14, - 2.03230938e-15, 7.80266422e-16, 7.72894292e-16, 9.65829674e-16, - 9.56699959e-16, 1.25457764e-15, 1.39568471e-14]))), - 'Measured positive electrode OCP [V]': ('nco_ocp_Ecker2015, - ([array([0.00106608, 0.04127378, 0.0653984 , 0.08722544, 0.11154152, - 0.13547468, 0.15940784, 0.18174545, 0.2056786 , 0.22801622, - 0.2511516 , 0.27508476, 0.29822014, 0.32215329, 0.34528868, - 0.36922183, 0.39395276, 0.41469483, 0.44022353, 0.46176337, - 0.4864943 , 0.50883191, 0.53276506, 0.55669822, 0.57823806, - 0.59818236, 0.64844198, 0.67237514, 0.69710607, 0.71944368, - 0.74337683, 0.76491667, 0.78805206, 0.81278299, 0.8351206 , - 0.85905375, 0.88218914, 0.90532452, 0.93005545, 0.95159529, - 0.9683485 , 0.98270839, 0.9994616 ])], - array([4.58426321, 4.54243734, 4.52965007, 4.52332475, 4.49893236, - 4.46985871, 4.42953849, 4.3892071 , 4.34213893, 4.29955823, - 4.2547338 , 4.21666289, 4.1785864 , 4.14726344, 4.11143626, - 4.08236261, 4.05554386, 4.03094651, 4.00638266, 3.98404021, - 3.96846803, 3.9528791 , 3.94179997, 3.9239729 , 3.91962497, - 3.91301656, 3.91111887, 3.91128632, 3.89796345, 3.88237453, - 3.86004882, 3.81746254, 3.78838331, 3.75931524, 3.73247975, - 3.70790473, 3.68107481, 3.64974626, 3.61168094, 3.57809192, - 3.55796529, 3.54232055, 3.51994462]))), - 'Measured positive electrode diffusivity [m2.s-1]': ('measured_nco_diffusivity_Ecker2015, - ([array([0.13943218, 0.2 , 0.26182965, 0.32239748, 0.38675079, - 0.44605678, 0.50788644, 0.56845426, 0.63154574, 0.69337539, - 0.75268139, 0.81577287, 0.87507886, 0.94069401, 1. ])], - array([1.82565403e-13, 3.32985856e-13, 3.08012285e-13, 2.63339203e-13, - 1.98119699e-13, 1.41887887e-13, 7.20118242e-14, 2.85770870e-14, - 4.54160840e-15, 5.47944475e-14, 2.02968867e-13, 1.58828651e-13, - 1.34460920e-13, 2.05450533e-14, 5.44629298e-15]))), - 'Negative current collector conductivity [S.m-1]': 58411000.0, - 'Negative current collector density [kg.m-3]': 8933.0, - 'Negative current collector specific heat capacity [J.kg-1.K-1]': 385.0, - 'Negative current collector surface heat transfer coefficient [W.m-2.K-1]': 10.0, - 'Negative current collector thermal conductivity [W.m-1.K-1]': 398.0, - 'Negative current collector thickness [m]': 1.4e-05, - 'Negative electrode Bruggeman coefficient (electrode)': 0.0, - 'Negative electrode Bruggeman coefficient (electrolyte)': 1.6372789338386007, - 'Negative electrode OCP [V]': graphite_ocp_Ecker2015_function, - 'Negative electrode OCP entropic change [V.K-1]': 0.0, - 'Negative electrode active material volume fraction': 0.372403, - 'Negative electrode cation signed stoichiometry': -1.0, - 'Negative electrode conductivity [S.m-1]': 14.0, - 'Negative electrode density [kg.m-3]': 1555.0, - 'Negative electrode diffusivity [m2.s-1]': graphite_diffusivity_Ecker2015, - 'Negative electrode electrons in reaction': 1.0, - 'Negative electrode exchange-current density [A.m-2]': graphite_electrolyte_exchange_current_density_Ecker2015, - 'Negative electrode porosity': 0.329, - 'Negative electrode reaction-driven LAM factor [m3.mol-1]': 0.0, - 'Negative electrode specific heat capacity [J.kg-1.K-1]': 1437.0, - 'Negative electrode thermal conductivity [W.m-1.K-1]': 1.58, - 'Negative electrode thickness [m]': 7.4e-05, - 'Negative particle radius [m]': 1.37e-05, - 'Negative tab centre y-coordinate [m]': 0.0045, - 'Negative tab centre z-coordinate [m]': 0.101, - 'Negative tab heat transfer coefficient [W.m-2.K-1]': 10.0, - 'Negative tab width [m]': 0.007, - 'Nominal cell capacity [A.h]': 0.15625, - 'Number of cells connected in series to make a battery': 1.0, - 'Number of electrodes connected in parallel to make a cell': 1.0, - 'Outer SEI open-circuit potential [V]': 0.8, - 'Outer SEI partial molar volume [m3.mol-1]': 9.585e-05, - 'Outer SEI solvent diffusivity [m2.s-1]': 2.5000000000000002e-22, - 'Positive current collector conductivity [S.m-1]': 36914000.0, - 'Positive current collector density [kg.m-3]': 2702.0, - 'Positive current collector specific heat capacity [J.kg-1.K-1]': 903.0, - 'Positive current collector surface heat transfer coefficient [W.m-2.K-1]': 10.0, - 'Positive current collector thermal conductivity [W.m-1.K-1]': 238.0, - 'Positive current collector thickness [m]': 1.5e-05, - 'Positive electrode Bruggeman coefficient (electrode)': 0.0, - 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5442267190786427, - 'Positive electrode OCP [V]': nco_ocp_Ecker2015_function, - 'Positive electrode OCP entropic change [V.K-1]': 0.0, - 'Positive electrode active material volume fraction': 0.40832, - 'Positive electrode cation signed stoichiometry': -1.0, - 'Positive electrode conductivity [S.m-1]': 68.1, - 'Positive electrode density [kg.m-3]': 2895.0, - 'Positive electrode diffusivity [m2.s-1]': nco_diffusivity_Ecker2015, - 'Positive electrode electrons in reaction': 1.0, - 'Positive electrode exchange-current density [A.m-2]': nco_electrolyte_exchange_current_density_Ecker2015, - 'Positive electrode porosity': 0.296, - 'Positive electrode reaction-driven LAM factor [m3.mol-1]': 0.0, - 'Positive electrode specific heat capacity [J.kg-1.K-1]': 1270.0, - 'Positive electrode thermal conductivity [W.m-1.K-1]': 1.04, - 'Positive electrode thickness [m]': 5.4e-05, - 'Positive particle radius [m]': 6.5e-06, - 'Positive tab centre y-coordinate [m]': 0.0309, - 'Positive tab centre z-coordinate [m]': 0.101, - 'Positive tab heat transfer coefficient [W.m-2.K-1]': 10.0, - 'Positive tab width [m]': 0.0069, - 'Ratio of lithium moles to SEI moles': 2.0, - 'Reference temperature [K]': 296.15, - 'SEI growth activation energy [J.mol-1]': 0.0, - 'SEI kinetic rate constant [m.s-1]': 1e-12, - 'SEI open-circuit potential [V]': 0.4, - 'SEI reaction exchange current density [A.m-2]': 1.5e-07, - 'SEI resistivity [Ohm.m]': 200000.0, - 'Separator Bruggeman coefficient (electrolyte)': 1.9804586773134945, - 'Separator density [kg.m-3]': 1017.0, - 'Separator porosity': 0.508, - 'Separator specific heat capacity [J.kg-1.K-1]': 1978.0, - 'Separator thermal conductivity [W.m-1.K-1]': 0.34, - 'Separator thickness [m]': 2e-05, - 'Total heat transfer coefficient [W.m-2.K-1]': 10.0, - 'Typical current [A]': 0.15652, - 'Typical electrolyte concentration [mol.m-3]': 1000.0, - 'Upper voltage cut-off [V]': 4.2} \ No newline at end of file + return { + # Negative electrode + "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Negative electrode thickness [m]": 7.4e-05, + "Negative electrode conductivity [S.m-1]": 14.0, + "Maximum concentration in negative electrode [mol.m-3]": 31920.0, + "Measured negative electrode diffusivity [m2.s-1]": ('measured_graphite_diffusivity_Ecker2015', measured_graphite_diffusivity_Ecker2015), + "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_Ecker2015, + "Measured negative electrode OCP [V]": ('graphite_ocp_Ecker2015', graphite_ocp_Ecker2015), + "Negative electrode OCP [V]": graphite_ocp_Ecker2015_function, + "Negative electrode porosity": 0.329, + "Negative electrode active material volume fraction": 0.372403, + "Negative electrode Bruggeman coefficient (electrolyte)": 1.6372789338386007, + "Negative electrode Bruggeman coefficient (electrode)": 0.0, + "Negative electrode cation signed stoichiometry": -1.0, + "Negative electrode electrons in reaction": 1.0, + "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_Ecker2015, + "Negative electrode density [kg.m-3]": 1555.0, + "Negative electrode specific heat capacity [J.kg-1.K-1]": 1437.0, + "Negative electrode thermal conductivity [W.m-1.K-1]": 1.58, + "Negative electrode OCP entropic change [V.K-1]": 0.0, + "Initial concentration in negative electrode [mol.m-3]": 26120.05, + # Separator + "Separator thickness [m]": 2e-05, + "Separator porosity": 0.508, + "Separator Bruggeman coefficient (electrolyte)": 1.9804586773134945, + "Separator density [kg.m-3]": 1017.0, + "Separator specific heat capacity [J.kg-1.K-1]": 1978.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.34, + # Positive electrode + "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Positive electrode thickness [m]": 5.4e-05, + "Positive electrode conductivity [S.m-1]": 68.1, + "Maximum concentration in positive electrode [mol.m-3]": 48580.0, + "Measured positive electrode diffusivity [m2.s-1]": ('measured_nco_diffusivity_Ecker2015', measured_nco_diffusivity_Ecker2015), + "Positive electrode diffusivity [m2.s-1]": nco_diffusivity_Ecker2015, + "Measured positive electrode OCP [V]": ('nco_ocp_Ecker2015', nco_ocp_Ecker2015), + "Positive electrode OCP [V]": nco_ocp_Ecker2015_function, + "Positive electrode porosity": 0.296, + "Positive electrode active material volume fraction": 0.40832, + "Positive electrode Bruggeman coefficient (electrolyte)": 1.5442267190786427, + "Positive electrode Bruggeman coefficient (electrode)": 0.0, + "Positive electrode exchange-current density [A.m-2]": nco_electrolyte_exchange_current_density_Ecker2015, + "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode electrons in reaction": 1.0, + "Positive electrode density [kg.m-3]": 2895.0, + "Positive electrode specific heat capacity [J.kg-1.K-1]": 1270.0, + "Positive electrode thermal conductivity [W.m-1.K-1]": 1.04, + "Positive electrode OCP entropic change [V.K-1]": 0.0, + "Initial concentration in positive electrode [mol.m-3]": 12630.8, + # Other + "Ratio of lithium moles to SEI moles": 2.0, + "Inner SEI reaction proportion": 0.5, + "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, + "SEI reaction exchange current density [A.m-2]": 1.5e-07, + "SEI resistivity [Ohm.m]": 200000.0, + "Outer SEI solvent diffusivity [m2.s-1]": 2.5000000000000002e-22, + "Bulk solvent concentration [mol.m-3]": 2636.0, + "Inner SEI open-circuit potential [V]": 0.1, + "Outer SEI open-circuit potential [V]": 0.8, + "Inner SEI electron conductivity [S.m-1]": 8.95e-14, + "Inner SEI lithium interstitial diffusivity [m2.s-1]": 1e-20, + "Lithium interstitial reference concentration [mol.m-3]": 15.0, + "Initial inner SEI thickness [m]": 2.5e-09, + "Initial outer SEI thickness [m]": 2.5e-09, + "EC initial concentration in electrolyte [mol.m-3]": 4541.0, + "EC diffusivity [m2.s-1]": 2e-18, + "SEI kinetic rate constant [m.s-1]": 1e-12, + "SEI open-circuit potential [V]": 0.4, + "SEI growth activation energy [J.mol-1]": 0.0, + "Negative current collector thickness [m]": 1.4e-05, + "Positive current collector thickness [m]": 1.5e-05, + "Electrode height [m]": 0.101, + "Electrode width [m]": 0.085, + "Negative tab width [m]": 0.007, + "Negative tab centre y-coordinate [m]": 0.0045, + "Negative tab centre z-coordinate [m]": 0.101, + "Positive tab width [m]": 0.0069, + "Positive tab centre y-coordinate [m]": 0.0309, + "Positive tab centre z-coordinate [m]": 0.101, + "Cell cooling surface area [m2]": 0.0172, + "Cell volume [m3]": 1.52e-06, + "Negative current collector conductivity [S.m-1]": 58411000.0, + "Positive current collector conductivity [S.m-1]": 36914000.0, + "Negative current collector density [kg.m-3]": 8933.0, + "Positive current collector density [kg.m-3]": 2702.0, + "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, + "Positive current collector specific heat capacity [J.kg-1.K-1]": 903.0, + "Negative current collector thermal conductivity [W.m-1.K-1]": 398.0, + "Positive current collector thermal conductivity [W.m-1.K-1]": 238.0, + "Nominal cell capacity [A.h]": 0.15625, + "Typical current [A]": 0.15652, + "Current function [A]": 0.15652, + "Negative particle radius [m]": 1.37e-05, + "Positive particle radius [m]": 6.5e-06, + "Typical electrolyte concentration [mol.m-3]": 1000.0, + "Initial concentration in electrolyte [mol.m-3]": 1000.0, + "Cation transference number": 0.26, + "1 + dlnf/dlnc": 1.0, + "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Ecker2015, + "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Ecker2015, + "Reference temperature [K]": 296.15, + "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 10.0, + "Positive current collector surface heat transfer coefficient [W.m-2.K-1]": 10.0, + "Negative tab heat transfer coefficient [W.m-2.K-1]": 10.0, + "Positive tab heat transfer coefficient [W.m-2.K-1]": 10.0, + "Edge heat transfer coefficient [W.m-2.K-1]": 10.0, + "Total heat transfer coefficient [W.m-2.K-1]": 10.0, + "Ambient temperature [K]": 298.15, + "Number of electrodes connected in parallel to make a cell": 1.0, + "Number of cells connected in series to make a battery": 1.0, + "Lower voltage cut-off [V]": 2.5, + "Upper voltage cut-off [V]": 4.2, + "Initial temperature [K]": 298.15, + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Marquis2019.py b/pybamm/input/parameters/lithium_ion/Marquis2019.py index bdb684ac4c..149d657be3 100644 --- a/pybamm/input/parameters/lithium_ion/Marquis2019.py +++ b/pybamm/input/parameters/lithium_ion/Marquis2019.py @@ -1,3 +1,6 @@ +import pybamm + + def graphite_mcmb2528_diffusivity_Dualfoil1998(sto, T): """ Graphite MCMB 2528 diffusivity as a function of stochiometry, in this case the @@ -22,7 +25,7 @@ def graphite_mcmb2528_diffusivity_Dualfoil1998(sto, T): D_ref = 3.9 * 10 ** (-14) E_D_s = 42770 - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / 298.15 - 1 / T)) return D_ref * arrhenius @@ -40,15 +43,15 @@ def graphite_mcmb2528_ocp_Dualfoil1998(sto): u_eq = ( 0.194 - + 1.5 * exp(-120.0 * sto) - + 0.0351 * tanh((sto - 0.286) / 0.083) - - 0.0045 * tanh((sto - 0.849) / 0.119) - - 0.035 * tanh((sto - 0.9233) / 0.05) - - 0.0147 * tanh((sto - 0.5) / 0.034) - - 0.102 * tanh((sto - 0.194) / 0.142) - - 0.022 * tanh((sto - 0.9) / 0.0164) - - 0.011 * tanh((sto - 0.124) / 0.0226) - + 0.0155 * tanh((sto - 0.105) / 0.029) + + 1.5 * pybamm.exp(-120.0 * sto) + + 0.0351 * pybamm.tanh((sto - 0.286) / 0.083) + - 0.0045 * pybamm.tanh((sto - 0.849) / 0.119) + - 0.035 * pybamm.tanh((sto - 0.9233) / 0.05) + - 0.0147 * pybamm.tanh((sto - 0.5) / 0.034) + - 0.102 * pybamm.tanh((sto - 0.194) / 0.142) + - 0.022 * pybamm.tanh((sto - 0.9) / 0.0164) + - 0.011 * pybamm.tanh((sto - 0.124) / 0.0226) + + 0.0155 * pybamm.tanh((sto - 0.105) / 0.029) ) return u_eq @@ -82,7 +85,7 @@ def graphite_electrolyte_exchange_current_density_Dualfoil1998( """ m_ref = 2 * 10 ** (-5) # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 37480 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 @@ -105,15 +108,15 @@ def graphite_entropic_change_Moura2016(sto, c_s_max): """ du_dT = ( - -1.5 * (120.0 / c_s_max) * exp(-120 * sto) - + (0.0351 / (0.083 * c_s_max)) * ((cosh((sto - 0.286) / 0.083)) ** (-2)) - - (0.0045 / (0.119 * c_s_max)) * ((cosh((sto - 0.849) / 0.119)) ** (-2)) - - (0.035 / (0.05 * c_s_max)) * ((cosh((sto - 0.9233) / 0.05)) ** (-2)) - - (0.0147 / (0.034 * c_s_max)) * ((cosh((sto - 0.5) / 0.034)) ** (-2)) - - (0.102 / (0.142 * c_s_max)) * ((cosh((sto - 0.194) / 0.142)) ** (-2)) - - (0.022 / (0.0164 * c_s_max)) * ((cosh((sto - 0.9) / 0.0164)) ** (-2)) - - (0.011 / (0.0226 * c_s_max)) * ((cosh((sto - 0.124) / 0.0226)) ** (-2)) - + (0.0155 / (0.029 * c_s_max)) * ((cosh((sto - 0.105) / 0.029)) ** (-2)) + -1.5 * (120.0 / c_s_max) * pybamm.exp(-120 * sto) + + (0.0351 / (0.083 * c_s_max)) * ((pybamm.cosh((sto - 0.286) / 0.083)) ** (-2)) + - (0.0045 / (0.119 * c_s_max)) * ((pybamm.cosh((sto - 0.849) / 0.119)) ** (-2)) + - (0.035 / (0.05 * c_s_max)) * ((pybamm.cosh((sto - 0.9233) / 0.05)) ** (-2)) + - (0.0147 / (0.034 * c_s_max)) * ((pybamm.cosh((sto - 0.5) / 0.034)) ** (-2)) + - (0.102 / (0.142 * c_s_max)) * ((pybamm.cosh((sto - 0.194) / 0.142)) ** (-2)) + - (0.022 / (0.0164 * c_s_max)) * ((pybamm.cosh((sto - 0.9) / 0.0164)) ** (-2)) + - (0.011 / (0.0226 * c_s_max)) * ((pybamm.cosh((sto - 0.124) / 0.0226)) ** (-2)) + + (0.0155 / (0.029 * c_s_max)) * ((pybamm.cosh((sto - 0.105) / 0.029)) ** (-2)) ) return du_dT @@ -141,7 +144,7 @@ def lico2_diffusivity_Dualfoil1998(sto, T): """ D_ref = 1 * 10 ** (-13) E_D_s = 18550 - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / 298.15 - 1 / T)) return D_ref * arrhenius @@ -172,12 +175,12 @@ def lico2_ocp_Dualfoil1998(sto): u_eq = ( 2.16216 - + 0.07645 * tanh(30.834 - 54.4806 * sto) - + 2.1581 * tanh(52.294 - 50.294 * sto) - - 0.14169 * tanh(11.0923 - 19.8543 * sto) - + 0.2051 * tanh(1.4684 - 5.4888 * sto) - + 0.2531 * tanh((-sto + 0.56478) / 0.1316) - - 0.02167 * tanh((sto - 0.525) / 0.006) + + 0.07645 * pybamm.tanh(30.834 - 54.4806 * sto) + + 2.1581 * pybamm.tanh(52.294 - 50.294 * sto) + - 0.14169 * pybamm.tanh(11.0923 - 19.8543 * sto) + + 0.2051 * pybamm.tanh(1.4684 - 5.4888 * sto) + + 0.2531 * pybamm.tanh((-sto + 0.56478) / 0.1316) + - 0.02167 * pybamm.tanh((sto - 0.525) / 0.006) ) return u_eq @@ -209,7 +212,7 @@ def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_m """ m_ref = 6 * 10 ** (-7) # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 39570 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 @@ -236,12 +239,12 @@ def lico2_entropic_change_Moura2016(sto, c_s_max): sto = stretch * sto du_dT = ( - 0.07645 * (-54.4806 / c_s_max) * ((1.0 / cosh(30.834 - 54.4806 * sto)) ** 2) - + 2.1581 * (-50.294 / c_s_max) * ((cosh(52.294 - 50.294 * sto)) ** (-2)) - + 0.14169 * (19.854 / c_s_max) * ((cosh(11.0923 - 19.8543 * sto)) ** (-2)) - - 0.2051 * (5.4888 / c_s_max) * ((cosh(1.4684 - 5.4888 * sto)) ** (-2)) - - (0.2531 / 0.1316 / c_s_max) * ((cosh((-sto + 0.56478) / 0.1316)) ** (-2)) - - (0.02167 / 0.006 / c_s_max) * ((cosh((sto - 0.525) / 0.006)) ** (-2)) + 0.07645 * (-54.4806 / c_s_max) * ((1.0 / pybamm.cosh(30.834 - 54.4806 * sto)) ** 2) + + 2.1581 * (-50.294 / c_s_max) * ((pybamm.cosh(52.294 - 50.294 * sto)) ** (-2)) + + 0.14169 * (19.854 / c_s_max) * ((pybamm.cosh(11.0923 - 19.8543 * sto)) ** (-2)) + - 0.2051 * (5.4888 / c_s_max) * ((pybamm.cosh(1.4684 - 5.4888 * sto)) ** (-2)) + - (0.2531 / 0.1316 / c_s_max) * ((pybamm.cosh((-sto + 0.56478) / 0.1316)) ** (-2)) + - (0.02167 / 0.006 / c_s_max) * ((pybamm.cosh((sto - 0.525) / 0.006)) ** (-2)) ) return du_dT @@ -272,9 +275,9 @@ def electrolyte_diffusivity_Capiglia1999(c_e, T): Solid diffusivity """ - D_c_e = 5.34e-10 * exp(-0.65 * c_e / 1000) + D_c_e = 5.34e-10 * pybamm.exp(-0.65 * c_e / 1000) E_D_e = 37040 - arrhenius = exp(E_D_e / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_D_e / pybamm.constants.R * (1 / 298.15 - 1 / T)) return D_c_e * arrhenius @@ -312,118 +315,125 @@ def electrolyte_conductivity_Capiglia1999(c_e, T): ) E_k_e = 34700 - arrhenius = exp(E_k_e / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_k_e / pybamm.constants.R * (1 / 298.15 - 1 / T)) return sigma_e * arrhenius + def get_parameter_values(): - return {'1 + dlnf/dlnc': 1.0, - 'Ambient temperature [K]': 298.15, - 'Bulk solvent concentration [mol.m-3]': 2636.0, - 'Cation transference number': 0.4, - 'Cell cooling surface area [m2]': 0.0569, - 'Cell volume [m3]': 7.8e-06, - 'Current function [A]': 0.680616, - 'EC diffusivity [m2.s-1]': 2e-18, - 'EC initial concentration in electrolyte [mol.m-3]': 4541.0, - 'Edge heat transfer coefficient [W.m-2.K-1]': 0.3, - 'Electrode height [m]': 0.137, - 'Electrode width [m]': 0.207, - 'Electrolyte conductivity [S.m-1]': electrolyte_conductivity_Capiglia1999, - 'Electrolyte diffusivity [m2.s-1]': electrolyte_diffusivity_Capiglia1999, - 'Initial concentration in electrolyte [mol.m-3]': 1000.0, - 'Initial concentration in negative electrode [mol.m-3]': 19986.609595075, - 'Initial concentration in positive electrode [mol.m-3]': 30730.7554385565, - 'Initial inner SEI thickness [m]': 2.5e-09, - 'Initial outer SEI thickness [m]': 2.5e-09, - 'Initial temperature [K]': 298.15, - 'Inner SEI electron conductivity [S.m-1]': 8.95e-14, - 'Inner SEI lithium interstitial diffusivity [m2.s-1]': 1e-20, - 'Inner SEI open-circuit potential [V]': 0.1, - 'Inner SEI partial molar volume [m3.mol-1]': 9.585e-05, - 'Inner SEI reaction proportion': 0.5, - 'Lithium interstitial reference concentration [mol.m-3]': 15.0, - 'Lower voltage cut-off [V]': 3.105, - 'Maximum concentration in negative electrode [mol.m-3]': 24983.2619938437, - 'Maximum concentration in positive electrode [mol.m-3]': 51217.9257309275, - 'Negative current collector conductivity [S.m-1]': 59600000.0, - 'Negative current collector density [kg.m-3]': 8954.0, - 'Negative current collector specific heat capacity [J.kg-1.K-1]': 385.0, - 'Negative current collector surface heat transfer coefficient [W.m-2.K-1]': 0.0, - 'Negative current collector thermal conductivity [W.m-1.K-1]': 401.0, - 'Negative current collector thickness [m]': 2.5e-05, - 'Negative electrode Bruggeman coefficient (electrode)': 1.5, - 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5, - 'Negative electrode OCP [V]': graphite_mcmb2528_ocp_Dualfoil1998, - 'Negative electrode OCP entropic change [V.K-1]': graphite_entropic_change_Moura2016, - 'Negative electrode active material volume fraction': 0.6, - 'Negative electrode cation signed stoichiometry': -1.0, - 'Negative electrode charge transfer coefficient': 0.5, - 'Negative electrode conductivity [S.m-1]': 100.0, - 'Negative electrode density [kg.m-3]': 1657.0, - 'Negative electrode diffusivity [m2.s-1]': graphite_mcmb2528_diffusivity_Dualfoil1998, - 'Negative electrode double-layer capacity [F.m-2]': 0.2, - 'Negative electrode electrons in reaction': 1.0, - 'Negative electrode exchange-current density [A.m-2]': graphite_electrolyte_exchange_current_density_Dualfoil1998, - 'Negative electrode porosity': 0.3, - 'Negative electrode reaction-driven LAM factor [m3.mol-1]': 0.0, - 'Negative electrode specific heat capacity [J.kg-1.K-1]': 700.0, - 'Negative electrode thermal conductivity [W.m-1.K-1]': 1.7, - 'Negative electrode thickness [m]': 0.0001, - 'Negative particle radius [m]': 1e-05, - 'Negative tab centre y-coordinate [m]': 0.06, - 'Negative tab centre z-coordinate [m]': 0.137, - 'Negative tab heat transfer coefficient [W.m-2.K-1]': 10.0, - 'Negative tab width [m]': 0.04, - 'Nominal cell capacity [A.h]': 0.680616, - 'Number of cells connected in series to make a battery': 1.0, - 'Number of electrodes connected in parallel to make a cell': 1.0, - 'Outer SEI open-circuit potential [V]': 0.8, - 'Outer SEI partial molar volume [m3.mol-1]': 9.585e-05, - 'Outer SEI solvent diffusivity [m2.s-1]': 2.5000000000000002e-22, - 'Positive current collector conductivity [S.m-1]': 35500000.0, - 'Positive current collector density [kg.m-3]': 2707.0, - 'Positive current collector specific heat capacity [J.kg-1.K-1]': 897.0, - 'Positive current collector surface heat transfer coefficient [W.m-2.K-1]': 0.0, - 'Positive current collector thermal conductivity [W.m-1.K-1]': 237.0, - 'Positive current collector thickness [m]': 2.5e-05, - 'Positive electrode Bruggeman coefficient (electrode)': 1.5, - 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5, - 'Positive electrode OCP [V]': lico2_ocp_Dualfoil1998, - 'Positive electrode OCP entropic change [V.K-1]': lico2_entropic_change_Moura2016, - 'Positive electrode active material volume fraction': 0.5, - 'Positive electrode cation signed stoichiometry': -1.0, - 'Positive electrode charge transfer coefficient': 0.5, - 'Positive electrode conductivity [S.m-1]': 10.0, - 'Positive electrode density [kg.m-3]': 3262.0, - 'Positive electrode diffusivity [m2.s-1]': lico2_diffusivity_Dualfoil1998, - 'Positive electrode double-layer capacity [F.m-2]': 0.2, - 'Positive electrode electrons in reaction': 1.0, - 'Positive electrode exchange-current density [A.m-2]': lico2_electrolyte_exchange_current_density_Dualfoil1998, - 'Positive electrode porosity': 0.3, - 'Positive electrode reaction-driven LAM factor [m3.mol-1]': 0.0, - 'Positive electrode specific heat capacity [J.kg-1.K-1]': 700.0, - 'Positive electrode thermal conductivity [W.m-1.K-1]': 2.1, - 'Positive electrode thickness [m]': 0.0001, - 'Positive particle radius [m]': 1e-05, - 'Positive tab centre y-coordinate [m]': 0.147, - 'Positive tab centre z-coordinate [m]': 0.137, - 'Positive tab heat transfer coefficient [W.m-2.K-1]': 10.0, - 'Positive tab width [m]': 0.04, - 'Ratio of lithium moles to SEI moles': 2.0, - 'Reference temperature [K]': 298.15, - 'SEI growth activation energy [J.mol-1]': 0.0, - 'SEI kinetic rate constant [m.s-1]': 1e-12, - 'SEI open-circuit potential [V]': 0.4, - 'SEI reaction exchange current density [A.m-2]': 1.5e-07, - 'SEI resistivity [Ohm.m]': 200000.0, - 'Separator Bruggeman coefficient (electrolyte)': 1.5, - 'Separator density [kg.m-3]': 397.0, - 'Separator porosity': 1.0, - 'Separator specific heat capacity [J.kg-1.K-1]': 700.0, - 'Separator thermal conductivity [W.m-1.K-1]': 0.16, - 'Separator thickness [m]': 2.5e-05, - 'Total heat transfer coefficient [W.m-2.K-1]': 10.0, - 'Typical current [A]': 0.680616, - 'Typical electrolyte concentration [mol.m-3]': 1000.0, - 'Upper voltage cut-off [V]': 4.1} \ No newline at end of file + return { + # Negative electrode + "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Negative electrode thickness [m]": 0.0001, + "Negative electrode conductivity [S.m-1]": 100.0, + "Maximum concentration in negative electrode [mol.m-3]": 24983.2619938437, + "Negative electrode diffusivity [m2.s-1]": graphite_mcmb2528_diffusivity_Dualfoil1998, + "Negative electrode OCP [V]": graphite_mcmb2528_ocp_Dualfoil1998, + "Negative electrode porosity": 0.3, + "Negative electrode active material volume fraction": 0.6, + "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, + "Negative electrode Bruggeman coefficient (electrode)": 1.5, + "Negative electrode cation signed stoichiometry": -1.0, + "Negative electrode electrons in reaction": 1.0, + "Negative electrode charge transfer coefficient": 0.5, + "Negative electrode double-layer capacity [F.m-2]": 0.2, + "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_Dualfoil1998, + "Negative electrode density [kg.m-3]": 1657.0, + "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, + "Negative electrode OCP entropic change [V.K-1]": graphite_entropic_change_Moura2016, + "Initial concentration in negative electrode [mol.m-3]": 19986.609595075, + # Separator + "Separator thickness [m]": 2.5e-05, + "Separator porosity": 1.0, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator density [kg.m-3]": 397.0, + "Separator specific heat capacity [J.kg-1.K-1]": 700.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.16, + # Positive electrode + "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Positive electrode thickness [m]": 0.0001, + "Positive electrode conductivity [S.m-1]": 10.0, + "Maximum concentration in positive electrode [mol.m-3]": 51217.9257309275, + "Positive electrode diffusivity [m2.s-1]": lico2_diffusivity_Dualfoil1998, + "Positive electrode OCP [V]": lico2_ocp_Dualfoil1998, + "Positive electrode porosity": 0.3, + "Positive electrode active material volume fraction": 0.5, + "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, + "Positive electrode Bruggeman coefficient (electrode)": 1.5, + "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode electrons in reaction": 1.0, + "Positive electrode charge transfer coefficient": 0.5, + "Positive electrode double-layer capacity [F.m-2]": 0.2, + "Positive electrode exchange-current density [A.m-2]": lico2_electrolyte_exchange_current_density_Dualfoil1998, + "Positive electrode density [kg.m-3]": 3262.0, + "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, + "Positive electrode OCP entropic change [V.K-1]": lico2_entropic_change_Moura2016, + "Initial concentration in positive electrode [mol.m-3]": 30730.7554385565, + # Other + "Ratio of lithium moles to SEI moles": 2.0, + "Inner SEI reaction proportion": 0.5, + "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, + "SEI reaction exchange current density [A.m-2]": 1.5e-07, + "SEI resistivity [Ohm.m]": 200000.0, + "Outer SEI solvent diffusivity [m2.s-1]": 2.5000000000000002e-22, + "Bulk solvent concentration [mol.m-3]": 2636.0, + "Inner SEI open-circuit potential [V]": 0.1, + "Outer SEI open-circuit potential [V]": 0.8, + "Inner SEI electron conductivity [S.m-1]": 8.95e-14, + "Inner SEI lithium interstitial diffusivity [m2.s-1]": 1e-20, + "Lithium interstitial reference concentration [mol.m-3]": 15.0, + "Initial inner SEI thickness [m]": 2.5e-09, + "Initial outer SEI thickness [m]": 2.5e-09, + "EC initial concentration in electrolyte [mol.m-3]": 4541.0, + "EC diffusivity [m2.s-1]": 2e-18, + "SEI kinetic rate constant [m.s-1]": 1e-12, + "SEI open-circuit potential [V]": 0.4, + "SEI growth activation energy [J.mol-1]": 0.0, + "Negative current collector thickness [m]": 2.5e-05, + "Positive current collector thickness [m]": 2.5e-05, + "Electrode height [m]": 0.137, + "Electrode width [m]": 0.207, + "Negative tab width [m]": 0.04, + "Negative tab centre y-coordinate [m]": 0.06, + "Negative tab centre z-coordinate [m]": 0.137, + "Positive tab width [m]": 0.04, + "Positive tab centre y-coordinate [m]": 0.147, + "Positive tab centre z-coordinate [m]": 0.137, + "Cell cooling surface area [m2]": 0.0569, + "Cell volume [m3]": 7.8e-06, + "Negative current collector conductivity [S.m-1]": 59600000.0, + "Positive current collector conductivity [S.m-1]": 35500000.0, + "Negative current collector density [kg.m-3]": 8954.0, + "Positive current collector density [kg.m-3]": 2707.0, + "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, + "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, + "Negative current collector thermal conductivity [W.m-1.K-1]": 401.0, + "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, + "Nominal cell capacity [A.h]": 0.680616, + "Typical current [A]": 0.680616, + "Current function [A]": 0.680616, + "Negative particle radius [m]": 1e-05, + "Positive particle radius [m]": 1e-05, + "Typical electrolyte concentration [mol.m-3]": 1000.0, + "Initial concentration in electrolyte [mol.m-3]": 1000.0, + "Cation transference number": 0.4, + "1 + dlnf/dlnc": 1.0, + "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Capiglia1999, + "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Capiglia1999, + "Reference temperature [K]": 298.15, + "Ambient temperature [K]": 298.15, + "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, + "Positive current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, + "Negative tab heat transfer coefficient [W.m-2.K-1]": 10.0, + "Positive tab heat transfer coefficient [W.m-2.K-1]": 10.0, + "Edge heat transfer coefficient [W.m-2.K-1]": 0.3, + "Total heat transfer coefficient [W.m-2.K-1]": 10.0, + "Number of electrodes connected in parallel to make a cell": 1.0, + "Number of cells connected in series to make a battery": 1.0, + "Lower voltage cut-off [V]": 3.105, + "Upper voltage cut-off [V]": 4.1, + "Initial temperature [K]": 298.15, + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Mohtat2020.py b/pybamm/input/parameters/lithium_ion/Mohtat2020.py index a82ae8869b..4c3bbd3027 100644 --- a/pybamm/input/parameters/lithium_ion/Mohtat2020.py +++ b/pybamm/input/parameters/lithium_ion/Mohtat2020.py @@ -1,3 +1,6 @@ +import pybamm + + def graphite_diffusivity_PeymanMPM(sto, T): """ Graphite diffusivity as a function of stochiometry, in this case the @@ -22,11 +25,10 @@ def graphite_diffusivity_PeymanMPM(sto, T): D_ref = 5.0 * 10 ** (-15) E_D_s = 42770 - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / 298.15 - 1 / T)) return D_ref * arrhenius - def graphite_ocp_PeymanMPM(sto): """ Graphite Open Circuit Potential (OCP) as a function of the @@ -39,18 +41,17 @@ def graphite_ocp_PeymanMPM(sto): u_eq = ( 0.063 - + 0.8 * pybamm.exp(-75 * (sto + 0.001)) - - 0.0120 * pybamm.tanh((sto - 0.127) / 0.016) - - 0.0118 * pybamm.tanh((sto - 0.155) / 0.016) - - 0.0035 * pybamm.tanh((sto - 0.220) / 0.020) - - 0.0095 * pybamm.tanh((sto - 0.190) / 0.013) - - 0.0145 * pybamm.tanh((sto - 0.490) / 0.020) - - 0.0800 * pybamm.tanh((sto - 1.030) / 0.055) + + 0.8 * pybamm.pybamm.exp(-75 * (sto + 0.001)) + - 0.0120 * pybamm.pybamm.tanh((sto - 0.127) / 0.016) + - 0.0118 * pybamm.pybamm.tanh((sto - 0.155) / 0.016) + - 0.0035 * pybamm.pybamm.tanh((sto - 0.220) / 0.020) + - 0.0095 * pybamm.pybamm.tanh((sto - 0.190) / 0.013) + - 0.0145 * pybamm.pybamm.tanh((sto - 0.490) / 0.020) + - 0.0800 * pybamm.pybamm.tanh((sto - 1.030) / 0.055) ) return u_eq - def graphite_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in @@ -80,13 +81,12 @@ def graphite_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_m m_ref = 1.061 * 10 ** (-6) # unit has been converted # units are (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 37480 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def graphite_entropic_change_PeymanMPM(sto, c_s_max): """ Graphite entropic change in open circuit potential (OCP) at a temperature of @@ -116,7 +116,6 @@ def graphite_entropic_change_PeymanMPM(sto, c_s_max): return du_dT - def NMC_diffusivity_PeymanMPM(sto, T): """ NMC diffusivity as a function of stochiometry, in this case the @@ -141,11 +140,10 @@ def NMC_diffusivity_PeymanMPM(sto, T): D_ref = 8 * 10 ** (-15) E_D_s = 18550 - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / 298.15 - 1 / T)) return D_ref * arrhenius - def NMC_ocp_PeymanMPM(sto): """ Nickel Managanese Cobalt Oxide (NMC) Open Circuit Potential (OCP) as a @@ -169,12 +167,11 @@ def NMC_ocp_PeymanMPM(sto): - 2.0843 * (sto**3) + 3.5146 * (sto**4) - 2.2166 * (sto**5) - - 0.5623e-4 * pybamm.exp(109.451 * sto - 100.006) + - 0.5623e-4 * pybamm.pybamm.exp(109.451 * sto - 100.006) ) return u_eq - def NMC_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -202,13 +199,12 @@ def NMC_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_max, T """ m_ref = 4.824 * 10 ** (-6) # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 39570 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def NMC_entropic_change_PeymanMPM(sto, c_s_max): """ Nickel Manganese Cobalt (NMC) entropic change in open circuit potential (OCP) at @@ -237,7 +233,7 @@ def NMC_entropic_change_PeymanMPM(sto, c_s_max): + 1.6225 * sto**2 - 2.0843 * sto**3 + 3.5146 * sto**4 - - 0.5623 * 10 ** (-4) * pybamm.exp(109.451 * sto - 100.006) + - 0.5623 * 10 ** (-4) * pybamm.pybamm.exp(109.451 * sto - 100.006) ) du_dT = ( @@ -246,7 +242,6 @@ def NMC_entropic_change_PeymanMPM(sto, c_s_max): return du_dT - def electrolyte_diffusivity_PeymanMPM(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. The original data @@ -275,11 +270,10 @@ def electrolyte_diffusivity_PeymanMPM(c_e, T): D_c_e = 5.35 * 10 ** (-10) E_D_e = 37040 - arrhenius = exp(E_D_e / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_D_e / pybamm.constants.R * (1 / 298.15 - 1 / T)) return D_c_e * arrhenius - def electrolyte_conductivity_PeymanMPM(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration. The original @@ -307,127 +301,131 @@ def electrolyte_conductivity_PeymanMPM(c_e, T): sigma_e = 1.3 E_k_e = 34700 - arrhenius = exp(E_k_e / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_k_e / pybamm.constants.R * (1 / 298.15 - 1 / T)) return sigma_e * arrhenius def get_parameter_values(): return { - "1 + dlnf/dlnc": 1.0, - "Ambient temperature [K]": 298.15, - "Bulk solvent concentration [mol.m-3]": 2636.0, - "Cation transference number": 0.38, - "Cell cooling surface area [m2]": 0.41, - "Cell volume [m3]": 3.92e-05, - "Current function [A]": 5.0, - "EC diffusivity [m2.s-1]": 2e-18, - "EC initial concentration in electrolyte [mol.m-3]": 4541.0, - "Edge heat transfer coefficient [W.m-2.K-1]": 5.0, - "Electrode height [m]": 1.0, - "Electrode width [m]": 0.205, - "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_PeymanMPM, - "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_PeymanMPM, - "Exchange-current density for plating [A.m-2]": 0.001, - "Initial concentration in electrolyte [mol.m-3]": 1000.0, - "Initial concentration in negative electrode [mol.m-3]": 48.8682, - "Initial concentration in positive electrode [mol.m-3]": 31513.0, - "Initial inner SEI thickness [m]": 2.5e-09, - "Initial outer SEI thickness [m]": 2.5e-09, - "Initial plated lithium concentration [mol.m-3]": 0.0, - "Initial temperature [K]": 298.15, - "Inner SEI electron conductivity [S.m-1]": 8.95e-14, - "Inner SEI lithium interstitial diffusivity [m2.s-1]": 1e-20, - "Inner SEI open-circuit potential [V]": 0.1, - "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, - "Inner SEI reaction proportion": 0.5, - "Lithium interstitial reference concentration [mol.m-3]": 15.0, - "Lithium metal partial molar volume [m3.mol-1]": 1.3e-05, - "Lithium plating transfer coefficient": 0.7, - "Lower voltage cut-off [V]": 2.8, + # Negative electrode + "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Negative electrode thickness [m]": 6.2e-05, + "Negative electrode conductivity [S.m-1]": 100.0, "Maximum concentration in negative electrode [mol.m-3]": 28746.0, - "Maximum concentration in positive electrode [mol.m-3]": 35380.0, - "Negative current collector conductivity [S.m-1]": 59600000.0, - "Negative current collector density [kg.m-3]": 8954.0, - "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, - "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, - "Negative current collector thermal conductivity [W.m-1.K-1]": 401.0, - "Negative current collector thickness [m]": 2.5e-05, - "Negative electrode Bruggeman coefficient (electrode)": 1.5, - "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, + "Negative electrode diffusion coefficient [m2.s-1]": 5e-15, + "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_PeymanMPM, "Negative electrode OCP [V]": graphite_ocp_PeymanMPM, - "Negative electrode OCP entropic change [V.K-1]": graphite_entropic_change_PeymanMPM, + "Negative electrode porosity": 0.3, "Negative electrode active material volume fraction": 0.61, + "Negative electrode Bruggeman coefficient (electrode)": 1.5, + "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, + "Negative electrode transport efficiency": 0.16, "Negative electrode cation signed stoichiometry": -1.0, + "Negative electrode electrons in reaction": 1.0, + "Negative electrode reference exchange-current density [A.m-2(m3.mol)1.5]": 1.061e-06, "Negative electrode charge transfer coefficient": 0.5, - "Negative electrode conductivity [S.m-1]": 100.0, - "Negative electrode density [kg.m-3]": 3100.0, - "Negative electrode diffusion coefficient [m2.s-1]": 5e-15, - "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_PeymanMPM, "Negative electrode double-layer capacity [F.m-2]": 0.2, - "Negative electrode electrons in reaction": 1.0, "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_PeymanMPM, - "Negative electrode porosity": 0.3, - "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, - "Negative electrode reference exchange-current density [A.m-2(m3.mol)1.5]": 1.061e-06, + "Negative electrode density [kg.m-3]": 3100.0, "Negative electrode specific heat capacity [J.kg-1.K-1]": 1100.0, "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, - "Negative electrode thickness [m]": 6.2e-05, - "Negative electrode transport efficiency": 0.16, - "Negative particle radius [m]": 2.5e-06, - "Negative tab heat transfer coefficient [W.m-2.K-1]": 0.0, - "Nominal cell capacity [A.h]": 5.0, - "Number of cells connected in series to make a battery": 1.0, - "Number of electrodes connected in parallel to make a cell": 1.0, - "Outer SEI open-circuit potential [V]": 0.8, - "Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, - "Outer SEI solvent diffusivity [m2.s-1]": 2.5000000000000002e-22, - "Positive current collector conductivity [S.m-1]": 35500000.0, - "Positive current collector density [kg.m-3]": 2707.0, - "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, - "Positive current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, - "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, - "Positive current collector thickness [m]": 2.5e-05, - "Positive electrode Bruggeman coefficient (electrode)": 1.5, - "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, + "Negative electrode OCP entropic change [V.K-1]": graphite_entropic_change_PeymanMPM, + "Initial concentration in negative electrode [mol.m-3]": 48.8682, + # Separator + "Separator thickness [m]": 1.2e-05, + "Separator porosity": 0.4, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator density [kg.m-3]": 397.0, + "Separator specific heat capacity [J.kg-1.K-1]": 700.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.16, + "Separator transport efficiency ": 0.25, + # Positive electrode + "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Positive electrode thickness [m]": 6.7e-05, + "Positive electrode conductivity [S.m-1]": 100.0, + "Maximum concentration in positive electrode [mol.m-3]": 35380.0, + "Positive electrode diffusivity [m2.s-1]": NMC_diffusivity_PeymanMPM, "Positive electrode OCP [V]": NMC_ocp_PeymanMPM, - "Positive electrode OCP entropic change [V.K-1]": NMC_entropic_change_PeymanMPM, + "Positive electrode porosity": 0.3, "Positive electrode active material volume fraction": 0.445, + "Positive electrode Bruggeman coefficient (electrode)": 1.5, + "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, + "Positive electrode transport efficiency": 0.16, "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode electrons in reaction": 1.0, + "Positive electrode reference exchange-current density [A.m-2(m3.mol)1.5]": 4.824e-06, "Positive electrode charge transfer coefficient": 0.5, - "Positive electrode conductivity [S.m-1]": 100.0, - "Positive electrode density [kg.m-3]": 3100.0, - "Positive electrode diffusivity [m2.s-1]": NMC_diffusivity_PeymanMPM, "Positive electrode double-layer capacity [F.m-2]": 0.2, - "Positive electrode electrons in reaction": 1.0, "Positive electrode exchange-current density [A.m-2]": NMC_electrolyte_exchange_current_density_PeymanMPM, - "Positive electrode porosity": 0.3, - "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, - "Positive electrode reference exchange-current density [A.m-2(m3.mol)1.5]": 4.824e-06, + "Positive electrode density [kg.m-3]": 3100.0, "Positive electrode specific heat capacity [J.kg-1.K-1]": 1100.0, "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, - "Positive electrode thickness [m]": 6.7e-05, - "Positive electrode transport efficiency": 0.16, - "Positive particle radius [m]": 3.5e-06, - "Positive tab heat transfer coefficient [W.m-2.K-1]": 0.0, + "Positive electrode OCP entropic change [V.K-1]": NMC_entropic_change_PeymanMPM, + "Initial concentration in positive electrode [mol.m-3]": 31513.0, + # Other + "Lithium metal partial molar volume [m3.mol-1]": 1.3e-05, + "Exchange-current density for plating [A.m-2]": 0.001, + "Initial plated lithium concentration [mol.m-3]": 0.0, + "Typical plated lithium concentration [mol.m-3]": 1000.0, + "Lithium plating transfer coefficient": 0.7, "Ratio of lithium moles to SEI moles": 2.0, - "Reference temperature [K]": 298.15, - "SEI growth activation energy [J.mol-1]": 0.0, - "SEI kinetic rate constant [m.s-1]": 1e-12, - "SEI open-circuit potential [V]": 0.4, + "Inner SEI reaction proportion": 0.5, + "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, "SEI reaction exchange current density [A.m-2]": 1.5e-07, "SEI resistivity [Ohm.m]": 200000.0, - "Separator Bruggeman coefficient (electrolyte)": 1.5, - "Separator density [kg.m-3]": 397.0, - "Separator porosity": 0.4, - "Separator specific heat capacity [J.kg-1.K-1]": 700.0, - "Separator thermal conductivity [W.m-1.K-1]": 0.16, - "Separator thickness [m]": 1.2e-05, - "Separator transport efficiency ": 0.25, - "Total heat transfer coefficient [W.m-2.K-1]": 5.0, + "Outer SEI solvent diffusivity [m2.s-1]": 2.5000000000000002e-22, + "Bulk solvent concentration [mol.m-3]": 2636.0, + "Inner SEI open-circuit potential [V]": 0.1, + "Outer SEI open-circuit potential [V]": 0.8, + "Inner SEI electron conductivity [S.m-1]": 8.95e-14, + "Inner SEI lithium interstitial diffusivity [m2.s-1]": 1e-20, + "Lithium interstitial reference concentration [mol.m-3]": 15.0, + "Initial inner SEI thickness [m]": 2.5e-09, + "Initial outer SEI thickness [m]": 2.5e-09, + "EC initial concentration in electrolyte [mol.m-3]": 4541.0, + "EC diffusivity [m2.s-1]": 2e-18, + "SEI kinetic rate constant [m.s-1]": 1e-12, + "SEI open-circuit potential [V]": 0.4, + "SEI growth activation energy [J.mol-1]": 0.0, + "Negative current collector thickness [m]": 2.5e-05, + "Positive current collector thickness [m]": 2.5e-05, + "Electrode height [m]": 1.0, + "Electrode width [m]": 0.205, + "Cell cooling surface area [m2]": 0.41, + "Cell volume [m3]": 3.92e-05, + "Negative current collector conductivity [S.m-1]": 59600000.0, + "Positive current collector conductivity [S.m-1]": 35500000.0, + "Negative current collector density [kg.m-3]": 8954.0, + "Positive current collector density [kg.m-3]": 2707.0, + "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, + "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, + "Negative current collector thermal conductivity [W.m-1.K-1]": 401.0, + "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, + "Nominal cell capacity [A.h]": 5.0, "Typical current [A]": 5.0, + "Current function [A]": 5.0, + "Negative particle radius [m]": 2.5e-06, + "Positive particle radius [m]": 3.5e-06, "Typical electrolyte concentration [mol.m-3]": 1000.0, + "Initial concentration in electrolyte [mol.m-3]": 1000.0, + "Cation transference number": 0.38, + "1 + dlnf/dlnc": 1.0, "Typical lithium ion diffusivity [m2.s-1]": 5.34e-10, - "Typical plated lithium concentration [mol.m-3]": 1000.0, + "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_PeymanMPM, + "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_PeymanMPM, + "Reference temperature [K]": 298.15, + "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, + "Positive current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, + "Negative tab heat transfer coefficient [W.m-2.K-1]": 0.0, + "Positive tab heat transfer coefficient [W.m-2.K-1]": 0.0, + "Edge heat transfer coefficient [W.m-2.K-1]": 5.0, + "Total heat transfer coefficient [W.m-2.K-1]": 5.0, + "Ambient temperature [K]": 298.15, + "Number of electrodes connected in parallel to make a cell": 1.0, + "Number of cells connected in series to make a battery": 1.0, + "Lower voltage cut-off [V]": 2.8, "Upper voltage cut-off [V]": 4.2, - } + "Initial temperature [K]": 298.15, + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py b/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py index dd5590fffa..cc5fce45f7 100644 --- a/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py +++ b/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py @@ -1,3 +1,7 @@ +import pybamm +import numpy as np + + def graphite_diffusivity_Kim2011(sto, T): """ Graphite diffusivity [1]. @@ -24,7 +28,7 @@ def graphite_diffusivity_Kim2011(sto, T): D_ref = 9 * 10 ** (-14) E_D_s = 4e3 - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / 298.15 - 1 / T)) return D_ref * arrhenius @@ -42,15 +46,15 @@ def graphite_ocp_Kim2011(sto): u_eq = ( 0.124 - + 1.5 * exp(-70 * sto) - - 0.0351 * tanh((sto - 0.286) / 0.083) - - 0.0045 * tanh((sto - 0.9) / 0.119) - - 0.035 * tanh((sto - 0.99) / 0.05) - - 0.0147 * tanh((sto - 0.5) / 0.034) - - 0.102 * tanh((sto - 0.194) / 0.142) - - 0.022 * tanh((sto - 0.98) / 0.0164) - - 0.011 * tanh((sto - 0.124) / 0.0226) - + 0.0155 * tanh((sto - 0.105) / 0.029) + + 1.5 * pybamm.exp(-70 * sto) + - 0.0351 * pybamm.tanh((sto - 0.286) / 0.083) + - 0.0045 * pybamm.tanh((sto - 0.9) / 0.119) + - 0.035 * pybamm.tanh((sto - 0.99) / 0.05) + - 0.0147 * pybamm.tanh((sto - 0.5) / 0.034) + - 0.102 * pybamm.tanh((sto - 0.194) / 0.142) + - 0.022 * pybamm.tanh((sto - 0.98) / 0.0164) + - 0.011 * pybamm.tanh((sto - 0.124) / 0.0226) + + 0.0155 * pybamm.tanh((sto - 0.105) / 0.029) ) return u_eq @@ -88,7 +92,7 @@ def graphite_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max i0_ref = 36 # reference exchange current density at 100% SOC sto = 0.36 # stochiometry at 100% SOC c_s_n_ref = sto * c_s_max # reference electrode concentration - c_e_ref = Parameter("Typical electrolyte concentration [mol.m-3]") + c_e_ref = pybamm.Parameter("Typical electrolyte concentration [mol.m-3]") alpha = 0.5 # charge transfer coefficient m_ref = i0_ref / ( @@ -96,7 +100,7 @@ def graphite_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max ) E_r = 3e4 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) return ( m_ref @@ -131,7 +135,7 @@ def nca_diffusivity_Kim2011(sto, T): """ D_ref = 3 * 10 ** (-15) E_D_s = 2e4 - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / 298.15 - 1 / T)) return D_ref * arrhenius @@ -166,14 +170,14 @@ def nca_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max, T): i0_ref = 4 # reference exchange current density at 100% SOC sto = 0.41 # stochiometry at 100% SOC c_s_ref = sto * c_s_max # reference electrode concentration - c_e_ref = Parameter("Typical electrolyte concentration [mol.m-3]") + c_e_ref = pybamm.Parameter("Typical electrolyte concentration [mol.m-3]") alpha = 0.5 # charge transfer coefficient m_ref = i0_ref / ( c_e_ref**alpha * (c_s_max - c_s_ref) ** alpha * c_s_ref**alpha ) E_r = 3e4 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) return ( m_ref @@ -209,9 +213,9 @@ def electrolyte_diffusivity_Kim2011(c_e, T): """ D_c_e = ( - 5.84 * 10 ** (-7) * exp(-2870 / T) * (c_e / 1000) ** 2 - - 33.9 * 10 ** (-7) * exp(-2920 / T) * (c_e / 1000) - + 129 * 10 ** (-7) * exp(-3200 / T) + 5.84 * 10 ** (-7) * pybamm.exp(-2870 / T) * (c_e / 1000) ** 2 + - 33.9 * 10 ** (-7) * pybamm.exp(-2920 / T) * (c_e / 1000) + + 129 * 10 ** (-7) * pybamm.exp(-3200 / T) ) return D_c_e @@ -242,151 +246,130 @@ def electrolyte_conductivity_Kim2011(c_e, T): """ sigma_e = ( - 3.45 * exp(-798 / T) * (c_e / 1000) ** 3 - - 48.5 * exp(-1080 / T) * (c_e / 1000) ** 2 - + 244 * exp(-1440 / T) * (c_e / 1000) + 3.45 * pybamm.exp(-798 / T) * (c_e / 1000) ** 3 + - 48.5 * pybamm.exp(-1080 / T) * (c_e / 1000) ** 2 + + 244 * pybamm.exp(-1440 / T) * (c_e / 1000) ) return sigma_e +nca_ocp_Kim2011_data_filename = pybamm.get_parameters_filepath('pybamm/input/parameters/lithium_ion/nca_ocp_Kim2011_data.csv') +nca_ocp_Kim2011_data = np.loadtxt(nca_ocp_Kim2011_data_filename, delimiter=',') + def get_parameter_values(): - return {'1 + dlnf/dlnc': 1.0, - 'Ambient temperature [K]': 298.15, - 'Bulk solvent concentration [mol.m-3]': 2636.0, - 'Cation transference number': 0.4, - 'Cell cooling surface area [m2]': 0.0561, - 'Cell volume [m3]': 4.62e-06, - 'Current function [A]': 0.43, - 'EC diffusivity [m2.s-1]': 2e-18, - 'EC initial concentration in electrolyte [mol.m-3]': 4541.0, - 'Edge heat transfer coefficient [W.m-2.K-1]': 0.3, - 'Electrode height [m]': 0.2, - 'Electrode width [m]': 0.14, - 'Electrolyte conductivity [S.m-1]': electrolyte_conductivity_Kim2011, - 'Electrolyte diffusivity [m2.s-1]': electrolyte_diffusivity_Kim2011, - 'Initial concentration in electrolyte [mol.m-3]': 1200.0, - 'Initial concentration in negative electrode [mol.m-3]': 18081.0, - 'Initial concentration in positive electrode [mol.m-3]': 20090.0, - 'Initial inner SEI thickness [m]': 2.5e-09, - 'Initial outer SEI thickness [m]': 2.5e-09, - 'Initial temperature [K]': 298.15, - 'Inner SEI electron conductivity [S.m-1]': 8.95e-14, - 'Inner SEI lithium interstitial diffusivity [m2.s-1]': 1e-20, - 'Inner SEI open-circuit potential [V]': 0.1, - 'Inner SEI partial molar volume [m3.mol-1]': 9.585e-05, - 'Inner SEI reaction proportion': 0.5, - 'Lithium interstitial reference concentration [mol.m-3]': 15.0, - 'Lower voltage cut-off [V]': 2.7, - 'Maximum concentration in negative electrode [mol.m-3]': 28700.0, - 'Maximum concentration in positive electrode [mol.m-3]': 49000.0, - 'Negative current collector conductivity [S.m-1]': 59600000.0, - 'Negative current collector density [kg.m-3]': 11544.75, - 'Negative current collector specific heat capacity [J.kg-1.K-1]': 385.0, - 'Negative current collector surface heat transfer coefficient [W.m-2.K-1]': 0.0, - 'Negative current collector thermal conductivity [W.m-1.K-1]': 267.467, - 'Negative current collector thickness [m]': 1e-05, - 'Negative electrode Bruggeman coefficient (electrode)': 2.0, - 'Negative electrode Bruggeman coefficient (electrolyte)': 2.0, - 'Negative electrode OCP [V]': graphite_ocp_Kim2011, - 'Negative electrode OCP entropic change [V.K-1]': 0.0, - 'Negative electrode active material volume fraction': 0.51, - 'Negative electrode cation signed stoichiometry': -1.0, - 'Negative electrode charge transfer coefficient': 0.5, - 'Negative electrode conductivity [S.m-1]': 100.0, - 'Negative electrode density [kg.m-3]': 2136.43638, - 'Negative electrode diffusivity [m2.s-1]': graphite_diffusivity_Kim2011, - 'Negative electrode double-layer capacity [F.m-2]': 0.2, - 'Negative electrode electrons in reaction': 1.0, - 'Negative electrode exchange-current density [A.m-2]': graphite_electrolyte_exchange_current_density_Kim2011, - 'Negative electrode porosity': 0.4, - 'Negative electrode reaction-driven LAM factor [m3.mol-1]': 0.0, - 'Negative electrode specific heat capacity [J.kg-1.K-1]': 700.0, - 'Negative electrode thermal conductivity [W.m-1.K-1]': 1.1339, - 'Negative electrode thickness [m]': 7e-05, - 'Negative particle radius [m]': 5.083e-07, - 'Negative tab centre y-coordinate [m]': 0.013, - 'Negative tab centre z-coordinate [m]': 0.2, - 'Negative tab heat transfer coefficient [W.m-2.K-1]': 25.0, - 'Negative tab width [m]': 0.044, - 'Nominal cell capacity [A.h]': 0.43, - 'Number of cells connected in series to make a battery': 1.0, - 'Number of electrodes connected in parallel to make a cell': 1.0, - 'Outer SEI open-circuit potential [V]': 0.8, - 'Outer SEI partial molar volume [m3.mol-1]': 9.585e-05, - 'Outer SEI solvent diffusivity [m2.s-1]': 2.5000000000000002e-22, - 'Positive current collector conductivity [S.m-1]': 37800000.0, - 'Positive current collector density [kg.m-3]': 3490.24338, - 'Positive current collector specific heat capacity [J.kg-1.K-1]': 897.0, - 'Positive current collector surface heat transfer coefficient [W.m-2.K-1]': 0.0, - 'Positive current collector thermal conductivity [W.m-1.K-1]': 158.079, - 'Positive current collector thickness [m]': 1e-05, - 'Positive electrode Bruggeman coefficient (electrode)': 2.0, - 'Positive electrode Bruggeman coefficient (electrolyte)': 2.0, - 'Positive electrode OCP [V]': ('nca_ocp_Kim2011_data, - ([array([0.37021443, 0.37577436, 0.38369048, 0.39189598, 0.40106922, - 0.40686181, 0.41168962, 0.41941373, 0.42665544, 0.43293042, - 0.43969074, 0.44548431, 0.45321039, 0.45852157, 0.46286601, - 0.47107645, 0.47638764, 0.48363133, 0.4894249 , 0.49811871, - 0.50777631, 0.51647111, 0.52805924, 0.53771684, 0.54930891, - 0.55655162, 0.56717498, 0.57683455, 0.58697453, 0.59614876, - 0.6087066 , 0.6159493 , 0.62464311, 0.63526844, 0.64637813, - 0.66038609, 0.67632754, 0.69178562, 0.70386304, 0.72463723, - 0.73913054, 0.75314145, 0.76763475, 0.77971218, 0.79178861, - 0.80434842, 0.81449236, 0.82608542, 0.83574499, 0.84637328, - 0.85603187, 0.86521004, 0.87390286, 0.88404778, 0.89274258, - 0.90240313, 0.91254904, 0.92221058, 0.93380562, 0.94829596, - 0.95795159, 0.96519232, 0.97097405, 0.97434484, 0.97674494, - 0.98058923, 0.98201962, 0.983451 , 0.98488435, 0.98583235, - 0.9872588 , 0.98964212, 0.9905704 , 0.99150558, 0.99338284])], - array([4.21044086, 4.19821487, 4.18214203, 4.16516313, 4.14960477, - 4.1382866 , 4.12979962, 4.11565356, 4.10292309, 4.09018933, - 4.08029169, 4.07039076, 4.05907917, 4.05059383, 4.04210521, - 4.0322125 , 4.02372716, 4.01383117, 4.00393024, 3.99403917, - 3.97989969, 3.97142586, 3.95304124, 3.93890175, 3.92618608, - 3.91487285, 3.89931941, 3.8880144 , 3.87245932, 3.85831819, - 3.84418857, 3.83287533, 3.82298427, 3.81026531, 3.79896523, - 3.78484054, 3.77072242, 3.75660267, 3.74672311, 3.7312042 , - 3.71991563, 3.71004265, 3.69875408, 3.68887453, 3.67757773, - 3.66628259, 3.65639645, 3.64509802, 3.633793 , 3.62532575, - 3.6126035 , 3.60413132, 3.59282302, 3.58435413, 3.5758803 , - 3.56599252, 3.55894086, 3.55047033, 3.54200636, 3.52646608, - 3.50949212, 3.49534441, 3.46843664, 3.45002407, 3.42593926, - 3.39335597, 3.36501616, 3.33809359, 3.3140055 , 3.28708128, - 3.25307253, 3.2048947 , 3.14962574, 3.10427745, 3.02350152]))), - 'Positive electrode OCP entropic change [V.K-1]': 0.0, - 'Positive electrode active material volume fraction': 0.41, - 'Positive electrode cation signed stoichiometry': -1.0, - 'Positive electrode charge transfer coefficient': 0.5, - 'Positive electrode conductivity [S.m-1]': 10.0, - 'Positive electrode density [kg.m-3]': 4205.82708, - 'Positive electrode diffusivity [m2.s-1]': nca_diffusivity_Kim2011, - 'Positive electrode double-layer capacity [F.m-2]': 0.2, - 'Positive electrode electrons in reaction': 1.0, - 'Positive electrode exchange-current density [A.m-2]': nca_electrolyte_exchange_current_density_Kim2011, - 'Positive electrode porosity': 0.4, - 'Positive electrode reaction-driven LAM factor [m3.mol-1]': 0.0, - 'Positive electrode specific heat capacity [J.kg-1.K-1]': 700.0, - 'Positive electrode thermal conductivity [W.m-1.K-1]': 1.4007, - 'Positive electrode thickness [m]': 5e-05, - 'Positive particle radius [m]': 1.633e-06, - 'Positive tab centre y-coordinate [m]': 0.137, - 'Positive tab centre z-coordinate [m]': 0.2, - 'Positive tab heat transfer coefficient [W.m-2.K-1]': 25.0, - 'Positive tab width [m]': 0.044, - 'Ratio of lithium moles to SEI moles': 2.0, - 'Reference temperature [K]': 298.15, - 'SEI growth activation energy [J.mol-1]': 0.0, - 'SEI kinetic rate constant [m.s-1]': 1e-12, - 'SEI open-circuit potential [V]': 0.4, - 'SEI reaction exchange current density [A.m-2]': 1.5e-07, - 'SEI resistivity [Ohm.m]': 200000.0, - 'Separator Bruggeman coefficient (electrolyte)': 2.0, - 'Separator density [kg.m-3]': 511.86798, - 'Separator porosity': 0.4, - 'Separator specific heat capacity [J.kg-1.K-1]': 700.0, - 'Separator thermal conductivity [W.m-1.K-1]': 0.10672, - 'Separator thickness [m]': 2.5e-05, - 'Total heat transfer coefficient [W.m-2.K-1]': 25.0, - 'Typical current [A]': 0.43, - 'Typical electrolyte concentration [mol.m-3]': 1200.0, - 'Upper voltage cut-off [V]': 4.2} \ No newline at end of file + return { + # Negative electrode + "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Negative electrode thickness [m]": 7e-05, + "Negative electrode conductivity [S.m-1]": 100.0, + "Maximum concentration in negative electrode [mol.m-3]": 28700.0, + "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_Kim2011, + "Negative electrode OCP [V]": graphite_ocp_Kim2011, + "Negative electrode porosity": 0.4, + "Negative electrode active material volume fraction": 0.51, + "Negative electrode Bruggeman coefficient (electrolyte)": 2.0, + "Negative electrode Bruggeman coefficient (electrode)": 2.0, + "Negative electrode cation signed stoichiometry": -1.0, + "Negative electrode electrons in reaction": 1.0, + "Negative electrode charge transfer coefficient": 0.5, + "Negative electrode double-layer capacity [F.m-2]": 0.2, + "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_Kim2011, + "Negative electrode density [kg.m-3]": 2136.43638, + "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Negative electrode thermal conductivity [W.m-1.K-1]": 1.1339, + "Negative electrode OCP entropic change [V.K-1]": 0.0, + "Initial concentration in negative electrode [mol.m-3]": 18081.0, + # Separator + "Separator thickness [m]": 2.5e-05, + "Separator porosity": 0.4, + "Separator Bruggeman coefficient (electrolyte)": 2.0, + "Separator density [kg.m-3]": 511.86798, + "Separator specific heat capacity [J.kg-1.K-1]": 700.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.10672, + # Positive electrode + "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Positive electrode thickness [m]": 5e-05, + "Positive electrode conductivity [S.m-1]": 10.0, + "Maximum concentration in positive electrode [mol.m-3]": 49000.0, + "Positive electrode diffusivity [m2.s-1]": nca_diffusivity_Kim2011, + "Positive electrode OCP [V]": ('nca_ocp_Kim2011_data', nca_ocp_Kim2011_data), + "Positive electrode porosity": 0.4, + "Positive electrode active material volume fraction": 0.41, + "Positive electrode Bruggeman coefficient (electrolyte)": 2.0, + "Positive electrode Bruggeman coefficient (electrode)": 2.0, + "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode electrons in reaction": 1.0, + "Positive electrode charge transfer coefficient": 0.5, + "Positive electrode double-layer capacity [F.m-2]": 0.2, + "Positive electrode exchange-current density [A.m-2]": nca_electrolyte_exchange_current_density_Kim2011, + "Positive electrode density [kg.m-3]": 4205.82708, + "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Positive electrode thermal conductivity [W.m-1.K-1]": 1.4007, + "Positive electrode OCP entropic change [V.K-1]": 0.0, + "Initial concentration in positive electrode [mol.m-3]": 20090.0, + # Other + "Ratio of lithium moles to SEI moles": 2.0, + "Inner SEI reaction proportion": 0.5, + "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, + "SEI reaction exchange current density [A.m-2]": 1.5e-07, + "SEI resistivity [Ohm.m]": 200000.0, + "Outer SEI solvent diffusivity [m2.s-1]": 2.5000000000000002e-22, + "Bulk solvent concentration [mol.m-3]": 2636.0, + "Inner SEI open-circuit potential [V]": 0.1, + "Outer SEI open-circuit potential [V]": 0.8, + "Inner SEI electron conductivity [S.m-1]": 8.95e-14, + "Inner SEI lithium interstitial diffusivity [m2.s-1]": 1e-20, + "Lithium interstitial reference concentration [mol.m-3]": 15.0, + "Initial inner SEI thickness [m]": 2.5e-09, + "Initial outer SEI thickness [m]": 2.5e-09, + "EC initial concentration in electrolyte [mol.m-3]": 4541.0, + "EC diffusivity [m2.s-1]": 2e-18, + "SEI kinetic rate constant [m.s-1]": 1e-12, + "SEI open-circuit potential [V]": 0.4, + "SEI growth activation energy [J.mol-1]": 0.0, + "Negative current collector thickness [m]": 1e-05, + "Positive current collector thickness [m]": 1e-05, + "Electrode height [m]": 0.2, + "Electrode width [m]": 0.14, + "Negative tab width [m]": 0.044, + "Negative tab centre y-coordinate [m]": 0.013, + "Negative tab centre z-coordinate [m]": 0.2, + "Positive tab width [m]": 0.044, + "Positive tab centre y-coordinate [m]": 0.137, + "Positive tab centre z-coordinate [m]": 0.2, + "Cell cooling surface area [m2]": 0.0561, + "Cell volume [m3]": 4.62e-06, + "Negative current collector conductivity [S.m-1]": 59600000.0, + "Positive current collector conductivity [S.m-1]": 37800000.0, + "Negative current collector density [kg.m-3]": 11544.75, + "Positive current collector density [kg.m-3]": 3490.24338, + "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, + "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, + "Negative current collector thermal conductivity [W.m-1.K-1]": 267.467, + "Positive current collector thermal conductivity [W.m-1.K-1]": 158.079, + "Nominal cell capacity [A.h]": 0.43, + "Typical current [A]": 0.43, + "Current function [A]": 0.43, + "Negative particle radius [m]": 5.083e-07, + "Positive particle radius [m]": 1.633e-06, + "Typical electrolyte concentration [mol.m-3]": 1200.0, + "Initial concentration in electrolyte [mol.m-3]": 1200.0, + "Cation transference number": 0.4, + "1 + dlnf/dlnc": 1.0, + "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Kim2011, + "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Kim2011, + "Reference temperature [K]": 298.15, + "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, + "Positive current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, + "Negative tab heat transfer coefficient [W.m-2.K-1]": 25.0, + "Positive tab heat transfer coefficient [W.m-2.K-1]": 25.0, + "Edge heat transfer coefficient [W.m-2.K-1]": 0.3, + "Total heat transfer coefficient [W.m-2.K-1]": 25.0, + "Ambient temperature [K]": 298.15, + "Number of electrodes connected in parallel to make a cell": 1.0, + "Number of cells connected in series to make a battery": 1.0, + "Lower voltage cut-off [V]": 2.7, + "Upper voltage cut-off [V]": 4.2, + "Initial temperature [K]": 298.15, + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/OKane2022.py b/pybamm/input/parameters/lithium_ion/OKane2022.py index 3e864b29ad..d931befc2a 100644 --- a/pybamm/input/parameters/lithium_ion/OKane2022.py +++ b/pybamm/input/parameters/lithium_ion/OKane2022.py @@ -1,3 +1,7 @@ +import pybamm +import numpy as np + + def plating_exchange_current_density_OKane2020(c_e, c_Li, T): """ Exchange-current density for Li plating reaction [A.m-2]. @@ -21,9 +25,9 @@ def plating_exchange_current_density_OKane2020(c_e, c_Li, T): Exchange-current density [A.m-2] """ - k_plating = Parameter("Lithium plating kinetic rate constant [m.s-1]") + k_plating = pybamm.Parameter("Lithium plating kinetic rate constant [m.s-1]") - return constants.F * k_plating * c_e + return pybamm.constants.F * k_plating * c_e def stripping_exchange_current_density_OKane2020(c_e, c_Li, T): """ @@ -54,9 +58,9 @@ def stripping_exchange_current_density_OKane2020(c_e, c_Li, T): Exchange-current density [A.m-2] """ - k_plating = Parameter("Lithium plating kinetic rate constant [m.s-1]") + k_plating = pybamm.Parameter("Lithium plating kinetic rate constant [m.s-1]") - return constants.F * k_plating * c_Li + return pybamm.constants.F * k_plating * c_Li def SEI_limited_dead_lithium_OKane2022(L_sei): """ @@ -77,9 +81,9 @@ def SEI_limited_dead_lithium_OKane2022(L_sei): Dead lithium decay rate [s-1] """ - gamma_0 = Parameter("Dead lithium decay constant [s-1]") - L_inner_0 = Parameter("Initial inner SEI thickness [m]") - L_outer_0 = Parameter("Initial outer SEI thickness [m]") + gamma_0 = pybamm.Parameter("Dead lithium decay constant [s-1]") + L_inner_0 = pybamm.Parameter("Initial inner SEI thickness [m]") + L_outer_0 = pybamm.Parameter("Initial outer SEI thickness [m]") L_sei_0 = L_inner_0 + L_outer_0 gamma = gamma_0 * L_sei_0 / L_sei @@ -114,7 +118,7 @@ def graphite_LGM50_diffusivity_Chen2020(sto, T): D_ref = 3.3e-14 E_D_s = 3.03e4 # E_D_s not given by Chen et al (2020), so taken from Ecker et al. (2015) instead - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / 298.15 - 1 / T)) return D_ref * arrhenius @@ -151,7 +155,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref = 6.48e-7 # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 35000 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 @@ -232,7 +236,7 @@ def graphite_cracking_rate_Ai2020(T_dim): """ k_cr = 3.9e-20 Eac_cr = 0 # to be implemented - arrhenius = exp(Eac_cr / constants.R * (1 / T_dim - 1 / 298.15)) + arrhenius = pybamm.exp(Eac_cr / pybamm.constants.R * (1 / T_dim - 1 / 298.15)) return k_cr * arrhenius def nmc_LGM50_diffusivity_Chen2020(sto, T): @@ -262,7 +266,7 @@ def nmc_LGM50_diffusivity_Chen2020(sto, T): D_ref = 4e-15 E_D_s = 25000 # O'Kane et al. (2022), after Cabanero et al. (2018) - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / 298.15 - 1 / T)) return D_ref * arrhenius @@ -292,9 +296,9 @@ def nmc_LGM50_ocp_Chen2020(sto): u_eq = ( -0.8090 * sto + 4.4875 - - 0.0428 * tanh(18.5138 * (sto - 0.5542)) - - 17.7326 * tanh(15.7890 * (sto - 0.3117)) - + 17.5842 * tanh(15.9308 * (sto - 0.3120)) + - 0.0428 * pybamm.tanh(18.5138 * (sto - 0.5542)) + - 17.7326 * pybamm.tanh(15.7890 * (sto - 0.3117)) + + 17.5842 * pybamm.tanh(15.9308 * (sto - 0.3120)) ) return u_eq @@ -327,7 +331,7 @@ def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_m """ m_ref = 3.42e-6 # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 17800 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 @@ -357,7 +361,7 @@ def volume_change_Ai2020(sto, c_s_max): t_change:class:`pybamm.Symbol` volume change, dimensionless, normalised by particle volume """ - omega = Parameter("Positive electrode partial molar volume [m3.mol-1]") + omega = pybamm.Parameter("Positive electrode partial molar volume [m3.mol-1]") t_change = omega * c_s_max * sto return t_change @@ -388,7 +392,7 @@ def cracking_rate_Ai2020(T_dim): """ k_cr = 3.9e-20 Eac_cr = 0 # to be implemented - arrhenius = exp(Eac_cr / constants.R * (1 / T_dim - 1 / 298.15)) + arrhenius = pybamm.exp(Eac_cr / pybamm.constants.R * (1 / T_dim - 1 / 298.15)) return k_cr * arrhenius def electrolyte_diffusivity_Nyman2008_arrhenius(c_e, T): @@ -424,7 +428,7 @@ def electrolyte_diffusivity_Nyman2008_arrhenius(c_e, T): # So use temperature dependence from Ecker et al. (2015) instead E_D_c_e = 17000 - arrhenius = exp(E_D_c_e / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_D_c_e / pybamm.constants.R * (1 / 298.15 - 1 / T)) return D_c_e * arrhenius @@ -463,241 +467,154 @@ def electrolyte_conductivity_Nyman2008_arrhenius(c_e, T): # So use temperature dependence from Ecker et al. (2015) instead E_sigma_e = 17000 - arrhenius = exp(E_sigma_e / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_sigma_e / pybamm.constants.R * (1 / 298.15 - 1 / T)) return sigma_e * arrhenius +graphite_LGM50_ocp_Chen2020_filename = pybamm.get_parameters_filepath('pybamm/input/parameters/lithium_ion/graphite_LGM50_ocp_Chen2020.csv') +graphite_LGM50_ocp_Chen2020 = np.loadtxt(graphite_LGM50_ocp_Chen2020_filename, delimiter=',') + def get_parameter_values(): - return {'1 + dlnf/dlnc': 1.0, - 'Ambient temperature [K]': 298.15, - 'Bulk solvent concentration [mol.m-3]': 2636.0, - 'Cation transference number': 0.2594, - 'Cell cooling surface area [m2]': 0.00531, - 'Cell thermal expansion coefficient [m.K-1]': 1.1e-06, - 'Cell volume [m3]': 2.42e-05, - 'Current function [A]': 5.0, - 'Dead lithium decay constant [s-1]': 1e-06, - 'Dead lithium decay rate [s-1]': SEI_limited_dead_lithium_OKane2022, - 'EC diffusivity [m2.s-1]': 2e-18, - 'EC initial concentration in electrolyte [mol.m-3]': 4541.0, - 'Electrode height [m]': 0.065, - 'Electrode width [m]': 1.58, - 'Electrolyte conductivity [S.m-1]': electrolyte_conductivity_Nyman2008_arrhenius, - 'Electrolyte diffusivity [m2.s-1]': electrolyte_diffusivity_Nyman2008_arrhenius, - 'Exchange-current density for plating [A.m-2]': plating_exchange_current_density_OKane2020, - 'Exchange-current density for stripping [A.m-2]': stripping_exchange_current_density_OKane2020, - 'Initial concentration in electrolyte [mol.m-3]': 1000.0, - 'Initial concentration in negative electrode [mol.m-3]': 29866.0, - 'Initial concentration in positive electrode [mol.m-3]': 17038.0, - 'Initial inner SEI thickness [m]': 0.0, - 'Initial outer SEI thickness [m]': 5e-09, - 'Initial plated lithium concentration [mol.m-3]': 0.0, - 'Initial temperature [K]': 298.15, - 'Inner SEI electron conductivity [S.m-1]': 8.95e-14, - 'Inner SEI lithium interstitial diffusivity [m2.s-1]': 1e-20, - 'Inner SEI open-circuit potential [V]': 0.1, - 'Inner SEI partial molar volume [m3.mol-1]': 9.585e-05, - 'Inner SEI reaction proportion': 0.0, - 'Lithium interstitial reference concentration [mol.m-3]': 15.0, - 'Lithium metal partial molar volume [m3.mol-1]': 1.3e-05, - 'Lithium plating kinetic rate constant [m.s-1]': 1e-09, - 'Lithium plating transfer coefficient': 0.65, - 'Lower voltage cut-off [V]': 2.5, - 'Maximum concentration in negative electrode [mol.m-3]': 33133.0, - 'Maximum concentration in positive electrode [mol.m-3]': 63104.0, - 'Negative current collector conductivity [S.m-1]': 58411000.0, - 'Negative current collector density [kg.m-3]': 8960.0, - 'Negative current collector specific heat capacity [J.kg-1.K-1]': 385.0, - 'Negative current collector thermal conductivity [W.m-1.K-1]': 401.0, - 'Negative current collector thickness [m]': 1.2e-05, - 'Negative electrode Bruggeman coefficient (electrode)': 1.5, - 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5, - 'Negative electrode LAM constant exponential term': 2.0, - 'Negative electrode LAM constant proportional term [s-1]': 2.7778e-07, - 'Negative electrode OCP [V]': ('graphite_LGM50_ocp_Chen2020, - ([array([0. , 0.03129623, 0.03499902, 0.0387018 , 0.04240458, - 0.04610736, 0.04981015, 0.05351292, 0.05721568, 0.06091845, - 0.06462122, 0.06832399, 0.07202675, 0.07572951, 0.07943227, - 0.08313503, 0.08683779, 0.09054054, 0.09424331, 0.09794607, - 0.10164883, 0.10535158, 0.10905434, 0.1127571 , 0.11645985, - 0.12016261, 0.12386536, 0.12756811, 0.13127086, 0.13497362, - 0.13867638, 0.14237913, 0.14608189, 0.14978465, 0.15348741, - 0.15719018, 0.16089294, 0.1645957 , 0.16829847, 0.17200122, - 0.17570399, 0.17940674, 0.1831095 , 0.18681229, 0.19051504, - 0.1942178 , 0.19792056, 0.20162334, 0.2053261 , 0.20902886, - 0.21273164, 0.2164344 , 0.22013716, 0.22383993, 0.2275427 , - 0.23124547, 0.23494825, 0.23865101, 0.24235377, 0.24605653, - 0.2497593 , 0.25346208, 0.25716486, 0.26086762, 0.26457039, - 0.26827314, 0.2719759 , 0.27567867, 0.27938144, 0.28308421, - 0.28678698, 0.29048974, 0.29419251, 0.29789529, 0.30159806, - 0.30530083, 0.30900361, 0.31270637, 0.31640913, 0.32011189, - 0.32381466, 0.32751744, 0.33122021, 0.33492297, 0.33862575, - 0.34232853, 0.34603131, 0.34973408, 0.35343685, 0.35713963, - 0.36084241, 0.36454517, 0.36824795, 0.37195071, 0.37565348, - 0.37935626, 0.38305904, 0.38676182, 0.3904646 , 0.39416737, - 0.39787015, 0.40157291, 0.40527567, 0.40897844, 0.41268121, - 0.41638398, 0.42008676, 0.42378953, 0.4274923 , 0.43119506, - 0.43489784, 0.43860061, 0.44230338, 0.44600615, 0.44970893, - 0.45341168, 0.45711444, 0.46081719, 0.46451994, 0.46822269, - 0.47192545, 0.47562821, 0.47933098, 0.48303375, 0.48673651, - 0.49043926, 0.49414203, 0.49784482, 0.50154759, 0.50525036, - 0.50895311, 0.51265586, 0.51635861, 0.52006139, 0.52376415, - 0.52746692, 0.53116969, 0.53487245, 0.53857521, 0.54227797, - 0.54598074, 0.5496835 , 0.55338627, 0.55708902, 0.56079178, - 0.56449454, 0.5681973 , 0.57190006, 0.57560282, 0.57930558, - 0.58300835, 0.58671112, 0.59041389, 0.59411664, 0.59781941, - 0.60152218, 0.60522496, 0.60892772, 0.61263048, 0.61633325, - 0.62003603, 0.6237388 , 0.62744156, 0.63114433, 0.63484711, - 0.63854988, 0.64225265, 0.64595543, 0.64965823, 0.653361 , - 0.65706377, 0.66076656, 0.66446934, 0.66817212, 0.67187489, - 0.67557767, 0.67928044, 0.68298322, 0.686686 , 0.69038878, - 0.69409156, 0.69779433, 0.70149709, 0.70519988, 0.70890264, - 0.7126054 , 0.71630818, 0.72001095, 0.72371371, 0.72741648, - 0.73111925, 0.73482204, 0.7385248 , 0.74222757, 0.74593034, - 0.74963312, 0.75333589, 0.75703868, 0.76074146, 0.76444422, - 0.76814698, 0.77184976, 0.77555253, 0.77925531, 0.78295807, - 0.78666085, 0.79036364, 0.79406641, 0.79776918, 0.80147197, - 0.80517474, 0.80887751, 0.81258028, 0.81628304, 0.81998581, - 0.82368858, 0.82739136, 0.83109411, 0.83479688, 0.83849965, - 0.84220242, 0.84590519, 0.84960797, 0.85331075, 0.85701353, - 0.86071631, 0.86441907, 0.86812186, 0.87182464, 0.87552742, - 0.87923019, 0.88293296, 0.88663573, 0.89033849, 0.89404126, - 0.89774404, 0.9014468 , 1. ])], - array([1.81772748, 1.0828807 , 0.99593794, 0.90023398, 0.79649431, - 0.73354429, 0.66664314, 0.64137149, 0.59813869, 0.5670836 , - 0.54746181, 0.53068399, 0.51304734, 0.49394092, 0.47926274, - 0.46065259, 0.45992726, 0.43801501, 0.42438665, 0.41150269, - 0.40033659, 0.38957134, 0.37756538, 0.36292541, 0.34357086, - 0.3406314 , 0.32299468, 0.31379458, 0.30795386, 0.29207319, - 0.28697687, 0.27405477, 0.2670497 , 0.25857493, 0.25265783, - 0.24826777, 0.2414345 , 0.23362778, 0.22956218, 0.22370236, - 0.22181271, 0.22089651, 0.2194268 , 0.21830064, 0.21845333, - 0.21753715, 0.21719357, 0.21635373, 0.21667822, 0.21738444, - 0.21469313, 0.21541846, 0.21465495, 0.2135479 , 0.21392964, - 0.21074206, 0.20873788, 0.20465319, 0.20205732, 0.19774358, - 0.19444147, 0.19190285, 0.18850531, 0.18581399, 0.18327537, - 0.18157659, 0.17814088, 0.17529686, 0.1719375 , 0.16934161, - 0.16756649, 0.16609676, 0.16414985, 0.16260378, 0.16224113, - 0.160027 , 0.15827096, 0.1588054 , 0.15552238, 0.15580869, - 0.15220118, 0.1511132 , 0.14987253, 0.14874637, 0.14678037, - 0.14620776, 0.14555879, 0.14389819, 0.14359279, 0.14242846, - 0.14038612, 0.13882096, 0.13954628, 0.13946992, 0.13780934, - 0.13973714, 0.13698858, 0.13523254, 0.13441178, 0.1352898 , - 0.13507985, 0.13647321, 0.13601512, 0.13435452, 0.1334765 , - 0.1348317 , 0.13275118, 0.13286571, 0.13263667, 0.13456447, - 0.13471718, 0.13395369, 0.13448814, 0.1334765 , 0.13298023, - 0.13259849, 0.13338107, 0.13309476, 0.13275118, 0.13443087, - 0.13315202, 0.132713 , 0.1330184 , 0.13278936, 0.13225491, - 0.13317111, 0.13263667, 0.13187316, 0.13265574, 0.13250305, - 0.13324745, 0.13204496, 0.13242669, 0.13233127, 0.13198769, - 0.13254122, 0.13145325, 0.13298023, 0.13168229, 0.1313578 , - 0.13235036, 0.13120511, 0.13089971, 0.13109058, 0.13082336, - 0.13011713, 0.129869 , 0.12992626, 0.12942998, 0.12796026, - 0.12862831, 0.12656689, 0.12734947, 0.12509716, 0.12110791, - 0.11839751, 0.11244226, 0.11307214, 0.1092165 , 0.10683058, - 0.10433014, 0.10530359, 0.10056993, 0.09950104, 0.09854668, - 0.09921473, 0.09541635, 0.09980643, 0.0986612 , 0.09560722, - 0.09755413, 0.09612258, 0.09430929, 0.09661885, 0.09366032, - 0.09522548, 0.09535909, 0.09316404, 0.09450016, 0.0930877 , - 0.09343126, 0.0932404 , 0.09350762, 0.09339309, 0.09291591, - 0.09303043, 0.0926296 , 0.0932404 , 0.09261052, 0.09249599, - 0.09240055, 0.09253416, 0.09209515, 0.09234329, 0.09366032, - 0.09333583, 0.09322131, 0.09264868, 0.09253416, 0.09243873, - 0.09230512, 0.09310678, 0.09165615, 0.09159888, 0.09207606, - 0.09175158, 0.09177067, 0.09236237, 0.09241964, 0.09320222, - 0.09199972, 0.09167523, 0.09322131, 0.09190428, 0.09167523, - 0.09285865, 0.09180884, 0.09150345, 0.09186611, 0.0920188 , - 0.09320222, 0.09131257, 0.09117896, 0.09133166, 0.09089265, - 0.09058725, 0.09051091, 0.09033912, 0.09041547, 0.0911217 , - 0.0894611 , 0.08999555, 0.08921297, 0.08881213, 0.08797229, - 0.08709427, 0.08503284, 0.07601531]))), - 'Negative electrode OCP entropic change [V.K-1]': 0.0, - "Negative electrode Paris' law constant b": 1.12, - "Negative electrode Paris' law constant m": 2.2, - "Negative electrode Poisson's ratio": 0.3, - "Negative electrode Young's modulus [Pa]": 15000000000.0, - 'Negative electrode active material volume fraction': 0.75, - 'Negative electrode cation signed stoichiometry': -1.0, - 'Negative electrode charge transfer coefficient': 0.5, - 'Negative electrode conductivity [S.m-1]': 215.0, - 'Negative electrode cracking rate': graphite_cracking_rate_Ai2020, - 'Negative electrode critical stress [Pa]': 60000000.0, - 'Negative electrode density [kg.m-3]': 1657.0, - 'Negative electrode diffusivity [m2.s-1]': graphite_LGM50_diffusivity_Chen2020, - 'Negative electrode double-layer capacity [F.m-2]': 0.2, - 'Negative electrode electrons in reaction': 1.0, - 'Negative electrode exchange-current density [A.m-2]': graphite_LGM50_electrolyte_exchange_current_density_Chen2020, - 'Negative electrode initial crack length [m]': 2e-08, - 'Negative electrode initial crack width [m]': 1.5e-08, - 'Negative electrode number of cracks per unit area [m-2]': 3180000000000000.0, - 'Negative electrode partial molar volume [m3.mol-1]': 3.1e-06, - 'Negative electrode porosity': 0.25, - 'Negative electrode reaction-driven LAM factor [m3.mol-1]': 0.0, - 'Negative electrode reference concentration for free of deformation [mol.m-3]': 0.0, - 'Negative electrode specific heat capacity [J.kg-1.K-1]': 700.0, - 'Negative electrode thermal conductivity [W.m-1.K-1]': 1.7, - 'Negative electrode thickness [m]': 8.52e-05, - 'Negative electrode volume change': graphite_volume_change_Ai2020, - 'Negative particle radius [m]': 5.86e-06, - 'Nominal cell capacity [A.h]': 5.0, - 'Number of cells connected in series to make a battery': 1.0, - 'Number of electrodes connected in parallel to make a cell': 1.0, - 'Outer SEI open-circuit potential [V]': 0.8, - 'Outer SEI partial molar volume [m3.mol-1]': 9.585e-05, - 'Outer SEI solvent diffusivity [m2.s-1]': 2.5000000000000002e-22, - 'Positive current collector conductivity [S.m-1]': 36914000.0, - 'Positive current collector density [kg.m-3]': 2700.0, - 'Positive current collector specific heat capacity [J.kg-1.K-1]': 897.0, - 'Positive current collector thermal conductivity [W.m-1.K-1]': 237.0, - 'Positive current collector thickness [m]': 1.6e-05, - 'Positive electrode Bruggeman coefficient (electrode)': 1.5, - 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5, - 'Positive electrode LAM constant exponential term': 2.0, - 'Positive electrode LAM constant proportional term [s-1]': 2.7778e-07, - 'Positive electrode OCP [V]': nmc_LGM50_ocp_Chen2020, - 'Positive electrode OCP entropic change [V.K-1]': 0.0, - "Positive electrode Paris' law constant b": 1.12, - "Positive electrode Paris' law constant m": 2.2, - "Positive electrode Poisson's ratio": 0.2, - "Positive electrode Young's modulus [Pa]": 375000000000.0, - 'Positive electrode active material volume fraction': 0.665, - 'Positive electrode cation signed stoichiometry': -1.0, - 'Positive electrode charge transfer coefficient': 0.5, - 'Positive electrode conductivity [S.m-1]': 0.18, - 'Positive electrode cracking rate': cracking_rate_Ai2020, - 'Positive electrode critical stress [Pa]': 375000000.0, - 'Positive electrode density [kg.m-3]': 3262.0, - 'Positive electrode diffusivity [m2.s-1]': nmc_LGM50_diffusivity_Chen2020, - 'Positive electrode double-layer capacity [F.m-2]': 0.2, - 'Positive electrode electrons in reaction': 1.0, - 'Positive electrode exchange-current density [A.m-2]': nmc_LGM50_electrolyte_exchange_current_density_Chen2020, - 'Positive electrode initial crack length [m]': 2e-08, - 'Positive electrode initial crack width [m]': 1.5e-08, - 'Positive electrode number of cracks per unit area [m-2]': 3180000000000000.0, - 'Positive electrode partial molar volume [m3.mol-1]': 1.25e-05, - 'Positive electrode porosity': 0.335, - 'Positive electrode reaction-driven LAM factor [m3.mol-1]': 0.0, - 'Positive electrode reference concentration for free of deformation [mol.m-3]': 0.0, - 'Positive electrode specific heat capacity [J.kg-1.K-1]': 700.0, - 'Positive electrode thermal conductivity [W.m-1.K-1]': 2.1, - 'Positive electrode thickness [m]': 7.56e-05, - 'Positive electrode volume change': volume_change_Ai2020, - 'Positive particle radius [m]': 5.22e-06, - 'Ratio of lithium moles to SEI moles': 1.0, - 'Reference temperature [K]': 298.15, - 'SEI growth activation energy [J.mol-1]': 38000.0, - 'SEI kinetic rate constant [m.s-1]': 1e-12, - 'SEI open-circuit potential [V]': 0.4, - 'SEI reaction exchange current density [A.m-2]': 1.5e-07, - 'SEI resistivity [Ohm.m]': 200000.0, - 'Separator Bruggeman coefficient (electrolyte)': 1.5, - 'Separator density [kg.m-3]': 397.0, - 'Separator porosity': 0.47, - 'Separator specific heat capacity [J.kg-1.K-1]': 700.0, - 'Separator thermal conductivity [W.m-1.K-1]': 0.16, - 'Separator thickness [m]': 1.2e-05, - 'Total heat transfer coefficient [W.m-2.K-1]': 10.0, - 'Typical current [A]': 5.0, - 'Typical electrolyte concentration [mol.m-3]': 1000.0, - 'Typical plated lithium concentration [mol.m-3]': 1000.0, - 'Upper voltage cut-off [V]': 4.2} \ No newline at end of file + return { + # Negative electrode + "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Negative electrode thickness [m]": 8.52e-05, + "Negative electrode conductivity [S.m-1]": 215.0, + "Maximum concentration in negative electrode [mol.m-3]": 33133.0, + "Negative electrode diffusivity [m2.s-1]": graphite_LGM50_diffusivity_Chen2020, + "Negative electrode OCP [V]": ('graphite_LGM50_ocp_Chen2020', graphite_LGM50_ocp_Chen2020), + "Negative electrode porosity": 0.25, + "Negative electrode active material volume fraction": 0.75, + "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, + "Negative electrode Bruggeman coefficient (electrode)": 1.5, + "Negative electrode cation signed stoichiometry": -1.0, + "Negative electrode electrons in reaction": 1.0, + "Negative electrode charge transfer coefficient": 0.5, + "Negative electrode double-layer capacity [F.m-2]": 0.2, + "Negative electrode exchange-current density [A.m-2]": graphite_LGM50_electrolyte_exchange_current_density_Chen2020, + "Negative electrode density [kg.m-3]": 1657.0, + "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, + "Negative electrode OCP entropic change [V.K-1]": 0.0, + "Negative electrode Poisson's ratio": 0.3, + "Negative electrode Young's modulus [Pa]": 15000000000.0, + "Negative electrode reference concentration for free of deformation [mol.m-3]": 0.0, + "Negative electrode partial molar volume [m3.mol-1]": 3.1e-06, + "Negative electrode volume change": graphite_volume_change_Ai2020, + "Negative electrode initial crack length [m]": 2e-08, + "Negative electrode initial crack width [m]": 1.5e-08, + "Negative electrode number of cracks per unit area [m-2]": 3180000000000000.0, + "Negative electrode Paris' law constant b": 1.12, + "Negative electrode Paris' law constant m": 2.2, + "Negative electrode cracking rate": graphite_cracking_rate_Ai2020, + "Negative electrode LAM constant proportional term [s-1]": 2.7778e-07, + "Negative electrode LAM constant exponential term": 2.0, + "Negative electrode critical stress [Pa]": 60000000.0, + "Initial concentration in negative electrode [mol.m-3]": 29866.0, + # Separator + "Separator thickness [m]": 1.2e-05, + "Separator porosity": 0.47, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator density [kg.m-3]": 397.0, + "Separator specific heat capacity [J.kg-1.K-1]": 700.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.16, + # Positive electrode + "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Positive electrode thickness [m]": 7.56e-05, + "Positive electrode conductivity [S.m-1]": 0.18, + "Maximum concentration in positive electrode [mol.m-3]": 63104.0, + "Positive electrode diffusivity [m2.s-1]": nmc_LGM50_diffusivity_Chen2020, + "Positive electrode OCP [V]": nmc_LGM50_ocp_Chen2020, + "Positive electrode porosity": 0.335, + "Positive electrode active material volume fraction": 0.665, + "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, + "Positive electrode Bruggeman coefficient (electrode)": 1.5, + "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode electrons in reaction": 1.0, + "Positive electrode charge transfer coefficient": 0.5, + "Positive electrode double-layer capacity [F.m-2]": 0.2, + "Positive electrode exchange-current density [A.m-2]": nmc_LGM50_electrolyte_exchange_current_density_Chen2020, + "Positive electrode density [kg.m-3]": 3262.0, + "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, + "Positive electrode OCP entropic change [V.K-1]": 0.0, + "Positive electrode Poisson's ratio": 0.2, + "Positive electrode Young's modulus [Pa]": 375000000000.0, + "Positive electrode reference concentration for free of deformation [mol.m-3]": 0.0, + "Positive electrode partial molar volume [m3.mol-1]": 1.25e-05, + "Positive electrode volume change": volume_change_Ai2020, + "Positive electrode initial crack length [m]": 2e-08, + "Positive electrode initial crack width [m]": 1.5e-08, + "Positive electrode number of cracks per unit area [m-2]": 3180000000000000.0, + "Positive electrode Paris' law constant b": 1.12, + "Positive electrode Paris' law constant m": 2.2, + "Positive electrode cracking rate": cracking_rate_Ai2020, + "Positive electrode LAM constant proportional term [s-1]": 2.7778e-07, + "Positive electrode LAM constant exponential term": 2.0, + "Positive electrode critical stress [Pa]": 375000000.0, + "Initial concentration in positive electrode [mol.m-3]": 17038.0, + # Other + "Lithium metal partial molar volume [m3.mol-1]": 1.3e-05, + "Lithium plating kinetic rate constant [m.s-1]": 1e-09, + "Exchange-current density for plating [A.m-2]": plating_exchange_current_density_OKane2020, + "Exchange-current density for stripping [A.m-2]": stripping_exchange_current_density_OKane2020, + "Initial plated lithium concentration [mol.m-3]": 0.0, + "Typical plated lithium concentration [mol.m-3]": 1000.0, + "Lithium plating transfer coefficient": 0.65, + "Dead lithium decay constant [s-1]": 1e-06, + "Dead lithium decay rate [s-1]": SEI_limited_dead_lithium_OKane2022, + "Ratio of lithium moles to SEI moles": 1.0, + "Inner SEI reaction proportion": 0.0, + "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, + "SEI reaction exchange current density [A.m-2]": 1.5e-07, + "SEI resistivity [Ohm.m]": 200000.0, + "Outer SEI solvent diffusivity [m2.s-1]": 2.5000000000000002e-22, + "Bulk solvent concentration [mol.m-3]": 2636.0, + "Inner SEI open-circuit potential [V]": 0.1, + "Outer SEI open-circuit potential [V]": 0.8, + "Inner SEI electron conductivity [S.m-1]": 8.95e-14, + "Inner SEI lithium interstitial diffusivity [m2.s-1]": 1e-20, + "Lithium interstitial reference concentration [mol.m-3]": 15.0, + "Initial inner SEI thickness [m]": 0.0, + "Initial outer SEI thickness [m]": 5e-09, + "EC initial concentration in electrolyte [mol.m-3]": 4541.0, + "EC diffusivity [m2.s-1]": 2e-18, + "SEI kinetic rate constant [m.s-1]": 1e-12, + "SEI open-circuit potential [V]": 0.4, + "SEI growth activation energy [J.mol-1]": 38000.0, + "Negative current collector thickness [m]": 1.2e-05, + "Positive current collector thickness [m]": 1.6e-05, + "Electrode height [m]": 0.065, + "Electrode width [m]": 1.58, + "Cell cooling surface area [m2]": 0.00531, + "Cell volume [m3]": 2.42e-05, + "Cell thermal expansion coefficient [m.K-1]": 1.1e-06, + "Negative current collector conductivity [S.m-1]": 58411000.0, + "Positive current collector conductivity [S.m-1]": 36914000.0, + "Negative current collector density [kg.m-3]": 8960.0, + "Positive current collector density [kg.m-3]": 2700.0, + "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, + "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, + "Negative current collector thermal conductivity [W.m-1.K-1]": 401.0, + "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, + "Nominal cell capacity [A.h]": 5.0, + "Typical current [A]": 5.0, + "Current function [A]": 5.0, + "Negative particle radius [m]": 5.86e-06, + "Positive particle radius [m]": 5.22e-06, + "Typical electrolyte concentration [mol.m-3]": 1000.0, + "Initial concentration in electrolyte [mol.m-3]": 1000.0, + "Cation transference number": 0.2594, + "1 + dlnf/dlnc": 1.0, + "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Nyman2008_arrhenius, + "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Nyman2008_arrhenius, + "Reference temperature [K]": 298.15, + "Total heat transfer coefficient [W.m-2.K-1]": 10.0, + "Ambient temperature [K]": 298.15, + "Number of electrodes connected in parallel to make a cell": 1.0, + "Number of cells connected in series to make a battery": 1.0, + "Lower voltage cut-off [V]": 2.5, + "Upper voltage cut-off [V]": 4.2, + "Initial temperature [K]": 298.15, + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/ORegan2022.py b/pybamm/input/parameters/lithium_ion/ORegan2022.py index 7b1e0143ec..b6c8cdc59a 100644 --- a/pybamm/input/parameters/lithium_ion/ORegan2022.py +++ b/pybamm/input/parameters/lithium_ion/ORegan2022.py @@ -1,3 +1,6 @@ +import pybamm + + def copper_heat_capacity_CRC(T): """ Copper specific heat capacity as a function of the temperature from [1]. @@ -115,16 +118,16 @@ def graphite_LGM50_diffusivity_ORegan2022(sto, T): ** ( a0 * sto + c0 - + a1 * exp(-((sto - b1) ** 2) / c1) - + a2 * exp(-((sto - b2) ** 2) / c2) - + a3 * exp(-((sto - b3) ** 2) / c3) - + a4 * exp(-((sto - b4) ** 2) / c4) + + a1 * pybamm.exp(-((sto - b1) ** 2) / c1) + + a2 * pybamm.exp(-((sto - b2) ** 2) / c2) + + a3 * pybamm.exp(-((sto - b3) ** 2) / c3) + + a4 * pybamm.exp(-((sto - b4) ** 2) / c4) ) * 3.0321 # correcting factor (see O'Regan et al 2021) ) - E_D_s = d * constants.R - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + E_D_s = d * pybamm.constants.R + arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / 298.15 - 1 / T)) return D_ref * arrhenius @@ -152,11 +155,11 @@ def graphite_LGM50_ocp_Chen2020(sto): """ U = ( - 1.9793 * exp(-39.3631 * sto) + 1.9793 * pybamm.exp(-39.3631 * sto) + 0.2482 - - 0.0909 * tanh(29.8538 * (sto - 0.1234)) - - 0.04478 * tanh(14.9159 * (sto - 0.2769)) - - 0.0205 * tanh(30.4444 * (sto - 0.6103)) + - 0.0909 * pybamm.tanh(29.8538 * (sto - 0.1234)) + - 0.04478 * pybamm.tanh(14.9159 * (sto - 0.2769)) + - 0.0205 * pybamm.tanh(30.4444 * (sto - 0.6103)) ) return U @@ -194,9 +197,9 @@ def graphite_LGM50_electrolyte_exchange_current_density_ORegan2022( i_ref = 2.668 # (A/m2) alpha = 0.792 E_r = 4e4 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) - c_e_ref = Parameter("Typical electrolyte concentration [mol.m-3]") + c_e_ref = pybamm.Parameter("Typical electrolyte concentration [mol.m-3]") return ( i_ref @@ -237,7 +240,7 @@ def graphite_LGM50_heat_capacity_ORegan2022(T): # value for the bulk electrolyte rho_e = 1280 cp_e = 229 - eps_e = Parameter("Negative electrode porosity") + eps_e = pybamm.Parameter("Negative electrode porosity") theta_e = rho_e * cp_e # value for the wet separator @@ -308,8 +311,8 @@ def graphite_LGM50_entropic_change_ORegan2022(sto, c_s_max): dUdT = ( a0 * sto + c0 - + a2 * exp(-((sto - b2) ** 2) / c2) - + a1 * (tanh(d1 * (sto - (b1 - c1))) - tanh(d1 * (sto - (b1 + c1)))) + + a2 * pybamm.exp(-((sto - b2) ** 2) / c2) + + a1 * (pybamm.tanh(d1 * (sto - (b1 - c1))) - pybamm.tanh(d1 * (sto - (b1 + c1)))) ) / 1000 # fit in mV / K return dUdT @@ -337,7 +340,7 @@ def nmc_LGM50_electronic_conductivity_ORegan2022(T): """ E_r = 3.5e3 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) sigma = 0.8473 * arrhenius @@ -383,15 +386,15 @@ def nmc_LGM50_diffusivity_ORegan2022(sto, T): 10 ** ( c0 - + a1 * exp(-((sto - b1) ** 2) / c1) - + a2 * exp(-((sto - b2) ** 2) / c2) - + a3 * exp(-((sto - b3) ** 2) / c3) + + a1 * pybamm.exp(-((sto - b1) ** 2) / c1) + + a2 * pybamm.exp(-((sto - b2) ** 2) / c2) + + a3 * pybamm.exp(-((sto - b3) ** 2) / c3) ) * 2.7 # correcting factor (see O'Regan et al 2021) ) - E_D_s = d * constants.R - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + E_D_s = d * pybamm.constants.R + arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / 298.15 - 1 / T)) return D_ref * arrhenius @@ -421,9 +424,9 @@ def nmc_LGM50_ocp_Chen2020(sto): U = ( -0.809 * sto + 4.4875 - - 0.0428 * tanh(18.5138 * (sto - 0.5542)) - - 17.7326 * tanh(15.789 * (sto - 0.3117)) - + 17.5842 * tanh(15.9308 * (sto - 0.312)) + - 0.0428 * pybamm.tanh(18.5138 * (sto - 0.5542)) + - 17.7326 * pybamm.tanh(15.789 * (sto - 0.3117)) + + 17.5842 * pybamm.tanh(15.9308 * (sto - 0.312)) ) return U @@ -460,9 +463,9 @@ def nmc_LGM50_electrolyte_exchange_current_density_ORegan2022( i_ref = 5.028 # (A/m2) alpha = 0.43 E_r = 2.401e4 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) - c_e_ref = Parameter("Typical electrolyte concentration [mol.m-3]") + c_e_ref = pybamm.Parameter("Typical electrolyte concentration [mol.m-3]") return ( i_ref @@ -503,7 +506,7 @@ def nmc_LGM50_heat_capacity_ORegan2022(T): # value for the bulk electrolyte rho_e = 1280 cp_e = 229 - eps_e = Parameter("Positive electrode porosity") + eps_e = pybamm.Parameter("Positive electrode porosity") theta_e = rho_e * cp_e # value for the wet separator @@ -568,7 +571,7 @@ def nmc_LGM50_entropic_change_ORegan2022(sto, c_s_max): c2 = 0.02179 dUdT = ( - a1 * exp(-((sto - b1) ** 2) / c1) + a2 * exp(-((sto - b2) ** 2) / c2) + a1 * pybamm.exp(-((sto - b1) ** 2) / c1) + a2 * pybamm.exp(-((sto - b2) ** 2) / c2) ) / 1000 # fit in mV / K @@ -604,7 +607,7 @@ def separator_LGM50_heat_capacity_ORegan2022(T): # value for the bulk electrolyte rho_e = 1280 cp_e = 229 - eps_e = Parameter("Separator porosity") + eps_e = pybamm.Parameter("Separator porosity") theta_e = rho_e * cp_e # value for the wet separator @@ -736,84 +739,89 @@ def electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019(c_e, T): return electrolyte_conductivity_base_Landesfeind2019(c_e, T, coeffs) + def get_parameter_values(): - return {'1 + dlnf/dlnc': electrolyte_TDF_EC_EMC_3_7_Landesfeind2019, - 'Ambient temperature [K]': 298.15, - 'Cation transference number': electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019, - 'Cell cooling surface area [m2]': 0.00531, - 'Cell volume [m3]': 2.42e-05, - 'Current function [A]': 5.0, - 'Electrode height [m]': 0.065, - 'Electrode width [m]': 1.58, - 'Electrolyte conductivity [S.m-1]': electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019, - 'Electrolyte diffusivity [m2.s-1]': electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019, - 'Initial concentration in electrolyte [mol.m-3]': 1000.0, - 'Initial concentration in negative electrode [mol.m-3]': 28866.0, - 'Initial concentration in positive electrode [mol.m-3]': 13975.0, - 'Initial temperature [K]': 298.15, - 'Lower voltage cut-off [V]': 2.5, - 'Maximum concentration in negative electrode [mol.m-3]': 29583.0, - 'Maximum concentration in positive electrode [mol.m-3]': 51765.0, - 'Negative current collector conductivity [S.m-1]': 58411000.0, - 'Negative current collector density [kg.m-3]': 8933.0, - 'Negative current collector specific heat capacity [J.kg-1.K-1]': copper_heat_capacity_CRC, - 'Negative current collector thermal conductivity [W.m-1.K-1]': copper_thermal_conductivity_CRC, - 'Negative current collector thickness [m]': 1.2e-05, - 'Negative electrode Bruggeman coefficient (electrode)': 0.0, - 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5, - 'Negative electrode OCP [V]': graphite_LGM50_ocp_Chen2020, - 'Negative electrode OCP entropic change [V.K-1]': graphite_LGM50_entropic_change_ORegan2022, - 'Negative electrode active material volume fraction': 0.75, - 'Negative electrode cation signed stoichiometry': -1.0, - 'Negative electrode charge transfer coefficient': 0.5, - 'Negative electrode conductivity [S.m-1]': 215.0, - 'Negative electrode density [kg.m-3]': 2060.0, - 'Negative electrode diffusivity [m2.s-1]': graphite_LGM50_diffusivity_ORegan2022, - 'Negative electrode double-layer capacity [F.m-2]': 0.2, - 'Negative electrode electrons in reaction': 1.0, - 'Negative electrode exchange-current density [A.m-2]': graphite_LGM50_electrolyte_exchange_current_density_ORegan2022, - 'Negative electrode porosity': 0.25, - 'Negative electrode specific heat capacity [J.kg-1.K-1]': graphite_LGM50_heat_capacity_ORegan2022, - 'Negative electrode thermal conductivity [W.m-1.K-1]': graphite_LGM50_thermal_conductivity_ORegan2022, - 'Negative electrode thickness [m]': 8.52e-05, - 'Negative particle radius [m]': 5.86e-06, - 'Nominal cell capacity [A.h]': 5.0, - 'Number of cells connected in series to make a battery': 1.0, - 'Number of electrodes connected in parallel to make a cell': 1.0, - 'Positive current collector conductivity [S.m-1]': 36914000.0, - 'Positive current collector density [kg.m-3]': 2702.0, - 'Positive current collector specific heat capacity [J.kg-1.K-1]': aluminium_heat_capacity_CRC, - 'Positive current collector thermal conductivity [W.m-1.K-1]': 237.0, - 'Positive current collector thickness [m]': 1.6e-05, - 'Positive electrode Bruggeman coefficient (electrode)': 0.0, - 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5, - 'Positive electrode OCP [V]': nmc_LGM50_ocp_Chen2020, - 'Positive electrode OCP entropic change [V.K-1]': nmc_LGM50_entropic_change_ORegan2022, - 'Positive electrode active material volume fraction': 0.665, - 'Positive electrode cation signed stoichiometry': -1.0, - 'Positive electrode charge transfer coefficient': 0.5, - 'Positive electrode conductivity [S.m-1]': nmc_LGM50_electronic_conductivity_ORegan2022, - 'Positive electrode density [kg.m-3]': 3699.0, - 'Positive electrode diffusivity [m2.s-1]': nmc_LGM50_diffusivity_ORegan2022, - 'Positive electrode double-layer capacity [F.m-2]': 0.2, - 'Positive electrode electrons in reaction': 1.0, - 'Positive electrode exchange-current density [A.m-2]': nmc_LGM50_electrolyte_exchange_current_density_ORegan2022, - 'Positive electrode porosity': 0.335, - 'Positive electrode specific heat capacity [J.kg-1.K-1]': nmc_LGM50_heat_capacity_ORegan2022, - 'Positive electrode thermal conductivity [W.m-1.K-1]': nmc_LGM50_thermal_conductivity_ORegan2022, - 'Positive electrode thickness [m]': 7.56e-05, - 'Positive particle radius [m]': 5.22e-06, - 'Reference OCP vs SHE in the negative electrode [V]': nan, - 'Reference OCP vs SHE in the positive electrode [V]': nan, - 'Reference temperature [K]': 298.15, - 'Separator Bruggeman coefficient (electrode)': 1.5, - 'Separator Bruggeman coefficient (electrolyte)': 1.5, - 'Separator density [kg.m-3]': 1548.0, - 'Separator porosity': 0.47, - 'Separator specific heat capacity [J.kg-1.K-1]': separator_LGM50_heat_capacity_ORegan2022, - 'Separator thermal conductivity [W.m-1.K-1]': 0.3344, - 'Separator thickness [m]': 1.2e-05, - 'Total heat transfer coefficient [W.m-2.K-1]': 10.0, - 'Typical current [A]': 5.0, - 'Typical electrolyte concentration [mol.m-3]': 1000.0, - 'Upper voltage cut-off [V]': 4.4} \ No newline at end of file + return { + # Negative electrode + "Negative electrode thickness [m]": 8.52e-05, + "Negative electrode conductivity [S.m-1]": 215.0, + "Maximum concentration in negative electrode [mol.m-3]": 29583.0, + "Negative electrode diffusivity [m2.s-1]": graphite_LGM50_diffusivity_ORegan2022, + "Negative electrode OCP [V]": graphite_LGM50_ocp_Chen2020, + "Negative electrode porosity": 0.25, + "Negative electrode active material volume fraction": 0.75, + "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, + "Negative electrode Bruggeman coefficient (electrode)": 0.0, + "Negative electrode cation signed stoichiometry": -1.0, + "Negative electrode electrons in reaction": 1.0, + "Negative electrode charge transfer coefficient": 0.5, + "Negative electrode double-layer capacity [F.m-2]": 0.2, + "Negative electrode exchange-current density [A.m-2]": graphite_LGM50_electrolyte_exchange_current_density_ORegan2022, + "Negative electrode density [kg.m-3]": 2060.0, + "Negative electrode specific heat capacity [J.kg-1.K-1]": graphite_LGM50_heat_capacity_ORegan2022, + "Negative electrode thermal conductivity [W.m-1.K-1]": graphite_LGM50_thermal_conductivity_ORegan2022, + "Negative electrode OCP entropic change [V.K-1]": graphite_LGM50_entropic_change_ORegan2022, + "Initial concentration in negative electrode [mol.m-3]": 28866.0, + # Separator + "Separator thickness [m]": 1.2e-05, + "Separator porosity": 0.47, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator Bruggeman coefficient (electrode)": 1.5, + "Separator density [kg.m-3]": 1548.0, + "Separator specific heat capacity [J.kg-1.K-1]": separator_LGM50_heat_capacity_ORegan2022, + "Separator thermal conductivity [W.m-1.K-1]": 0.3344, + # Positive electrode + "Positive electrode thickness [m]": 7.56e-05, + "Positive electrode conductivity [S.m-1]": nmc_LGM50_electronic_conductivity_ORegan2022, + "Maximum concentration in positive electrode [mol.m-3]": 51765.0, + "Positive electrode diffusivity [m2.s-1]": nmc_LGM50_diffusivity_ORegan2022, + "Positive electrode OCP [V]": nmc_LGM50_ocp_Chen2020, + "Positive electrode porosity": 0.335, + "Positive electrode active material volume fraction": 0.665, + "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, + "Positive electrode Bruggeman coefficient (electrode)": 0.0, + "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode electrons in reaction": 1.0, + "Positive electrode charge transfer coefficient": 0.5, + "Positive electrode double-layer capacity [F.m-2]": 0.2, + "Positive electrode exchange-current density [A.m-2]": nmc_LGM50_electrolyte_exchange_current_density_ORegan2022, + "Positive electrode density [kg.m-3]": 3699.0, + "Positive electrode specific heat capacity [J.kg-1.K-1]": nmc_LGM50_heat_capacity_ORegan2022, + "Positive electrode thermal conductivity [W.m-1.K-1]": nmc_LGM50_thermal_conductivity_ORegan2022, + "Positive electrode OCP entropic change [V.K-1]": nmc_LGM50_entropic_change_ORegan2022, + "Initial concentration in positive electrode [mol.m-3]": 13975.0, + # Other + "Negative current collector thickness [m]": 1.2e-05, + "Positive current collector thickness [m]": 1.6e-05, + "Electrode height [m]": 0.065, + "Electrode width [m]": 1.58, + "Cell cooling surface area [m2]": 0.00531, + "Cell volume [m3]": 2.42e-05, + "Negative current collector conductivity [S.m-1]": 58411000.0, + "Positive current collector conductivity [S.m-1]": 36914000.0, + "Negative current collector density [kg.m-3]": 8933.0, + "Positive current collector density [kg.m-3]": 2702.0, + "Negative current collector specific heat capacity [J.kg-1.K-1]": copper_heat_capacity_CRC, + "Positive current collector specific heat capacity [J.kg-1.K-1]": aluminium_heat_capacity_CRC, + "Negative current collector thermal conductivity [W.m-1.K-1]": copper_thermal_conductivity_CRC, + "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, + "Nominal cell capacity [A.h]": 5.0, + "Typical current [A]": 5.0, + "Current function [A]": 5.0, + "Negative particle radius [m]": 5.86e-06, + "Positive particle radius [m]": 5.22e-06, + "Typical electrolyte concentration [mol.m-3]": 1000.0, + "Initial concentration in electrolyte [mol.m-3]": 1000.0, + "Cation transference number": electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019, + "1 + dlnf/dlnc": electrolyte_TDF_EC_EMC_3_7_Landesfeind2019, + "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019, + "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019, + "Reference temperature [K]": 298.15, + "Total heat transfer coefficient [W.m-2.K-1]": 10.0, + "Ambient temperature [K]": 298.15, + "Number of electrodes connected in parallel to make a cell": 1.0, + "Number of cells connected in series to make a battery": 1.0, + "Lower voltage cut-off [V]": 2.5, + "Upper voltage cut-off [V]": 4.4, + "Initial temperature [K]": 298.15, + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Prada2013.py b/pybamm/input/parameters/lithium_ion/Prada2013.py index 8028dea4a5..47f907f70d 100644 --- a/pybamm/input/parameters/lithium_ion/Prada2013.py +++ b/pybamm/input/parameters/lithium_ion/Prada2013.py @@ -1,3 +1,6 @@ +import pybamm + + def graphite_LGM50_ocp_Chen2020(sto): """ LG M50 Graphite open-circuit potential as a function of stochiometry, fit taken @@ -22,11 +25,11 @@ def graphite_LGM50_ocp_Chen2020(sto): """ u_eq = ( - 1.9793 * exp(-39.3631 * sto) + 1.9793 * pybamm.exp(-39.3631 * sto) + 0.2482 - - 0.0909 * tanh(29.8538 * (sto - 0.1234)) - - 0.04478 * tanh(14.9159 * (sto - 0.2769)) - - 0.0205 * tanh(30.4444 * (sto - 0.6103)) + - 0.0909 * pybamm.tanh(29.8538 * (sto - 0.1234)) + - 0.04478 * pybamm.tanh(14.9159 * (sto - 0.2769)) + - 0.0205 * pybamm.tanh(30.4444 * (sto - 0.6103)) ) return u_eq @@ -63,7 +66,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( """ m_ref = 6.48e-7 # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 35000 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 @@ -87,7 +90,7 @@ def LFP_ocp_ashfar2017(sto): c1 = -150 * sto c2 = -30 * (1 - sto) - k = 3.4077 - 0.020269 * sto + 0.5 * exp(c1) - 0.9 * exp(c2) + k = 3.4077 - 0.020269 * sto + 0.5 * pybamm.exp(c1) - 0.9 * pybamm.exp(c2) return k @@ -121,7 +124,7 @@ def LFP_electrolyte_exchange_current_density_kashkooli2017(c_e, c_s_surf, c_s_ma m_ref = 6 * 10 ** (-7) # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 39570 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 @@ -189,85 +192,92 @@ def electrolyte_conductivity_Nyman2008(c_e, T): return sigma_e + def get_parameter_values(): - return {'1 + dlnf/dlnc': 1.0, - 'Ambient temperature [K]': 298.15, - 'Cation transference number': 0.2594, - 'Current function [A]': 1.1, - 'Electrode height [m]': 0.0649, - 'Electrode width [m]': 1.78, - 'Electrolyte conductivity [S.m-1]': electrolyte_conductivity_Nyman2008, - 'Electrolyte diffusivity [m2.s-1]': electrolyte_diffusivity_Nyman2008, - 'Heat transfer coefficient [W.m-2.K-1]': 10.0, - 'Initial concentration in electrolyte [mol.m-3]': 1000.0, - 'Initial concentration in negative electrode [mol.m-3]': 28831.45783, - 'Initial concentration in positive electrode [mol.m-3]': 35.3766672, - 'Initial temperature [K]': 298.15, - 'Lower voltage cut-off [V]': 2.0, - 'Maximum concentration in negative electrode [mol.m-3]': 33133.0, - 'Maximum concentration in positive electrode [mol.m-3]': 22806.0, - 'Negative current collector conductivity [S.m-1]': 58411000.0, - 'Negative current collector density [kg.m-3]': 8960.0, - 'Negative current collector specific heat capacity [J.kg-1.K-1]': 385.0, - 'Negative current collector thermal conductivity [W.m-1.K-1]': 401.0, - 'Negative current collector thickness [m]': 1e-05, - 'Negative electrode Bruggeman coefficient (electrode)': 1.5, - 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5, - 'Negative electrode OCP [V]': graphite_LGM50_ocp_Chen2020, - 'Negative electrode OCP entropic change [V.K-1]': 0.0, - 'Negative electrode active material volume fraction': 0.75, - 'Negative electrode cation signed stoichiometry': -1.0, - 'Negative electrode charge transfer coefficient': 0.5, - 'Negative electrode conductivity [S.m-1]': 215.0, - 'Negative electrode density [kg.m-3]': 1657.0, - 'Negative electrode diffusivity [m2.s-1]': 3.3e-14, - 'Negative electrode double-layer capacity [F.m-2]': 0.2, - 'Negative electrode electrons in reaction': 1.0, - 'Negative electrode exchange-current density [A.m-2]': graphite_LGM50_electrolyte_exchange_current_density_Chen2020, - 'Negative electrode porosity': 0.25, - 'Negative electrode specific heat capacity [J.kg-1.K-1]': 700.0, - 'Negative electrode thermal conductivity [W.m-1.K-1]': 1.7, - 'Negative electrode thickness [m]': 3.6e-05, - 'Negative particle radius [m]': 5.86e-06, - 'Negative tab centre y-coordinate [m]': 0.06, - 'Negative tab centre z-coordinate [m]': 0.137, - 'Negative tab width [m]': 0.04, - 'Nominal cell capacity [A.h]': 1.1, - 'Number of cells connected in series to make a battery': 1.0, - 'Number of electrodes connected in parallel to make a cell': 1.0, - 'Positive current collector conductivity [S.m-1]': 36914000.0, - 'Positive current collector density [kg.m-3]': 2700.0, - 'Positive current collector specific heat capacity [J.kg-1.K-1]': 897.0, - 'Positive current collector thermal conductivity [W.m-1.K-1]': 237.0, - 'Positive current collector thickness [m]': 1.9e-05, - 'Positive electrode Bruggeman coefficient (electrode)': 1.5, - 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5, - 'Positive electrode OCP [V]': LFP_ocp_ashfar2017, - 'Positive electrode OCP entropic change [V.K-1]': 0.0, - 'Positive electrode active material volume fraction': 0.28485556, - 'Positive electrode cation signed stoichiometry': -1.0, - 'Positive electrode charge transfer coefficient': 0.5, - 'Positive electrode conductivity [S.m-1]': 0.33795074, - 'Positive electrode density [kg.m-3]': 2341.17, - 'Positive electrode diffusivity [m2.s-1]': 5.9e-18, - 'Positive electrode double-layer capacity [F.m-2]': 0.2, - 'Positive electrode electrons in reaction': 1.0, - 'Positive electrode exchange-current density [A.m-2]': LFP_electrolyte_exchange_current_density_kashkooli2017, - 'Positive electrode porosity': 0.12728395, - 'Positive electrode specific heat capacity [J.kg-1.K-1]': 1100.0, - 'Positive electrode thermal conductivity [W.m-1.K-1]': 2.1, - 'Positive electrode thickness [m]': 8.1e-05, - 'Positive particle radius [m]': 1e-08, - 'Positive tab centre y-coordinate [m]': 0.147, - 'Positive tab centre z-coordinate [m]': 0.137, - 'Positive tab width [m]': 0.04, - 'Reference temperature [K]': 298.15, - 'Separator Bruggeman coefficient (electrolyte)': 1.5, - 'Separator density [kg.m-3]': 397.0, - 'Separator porosity': 0.47, - 'Separator specific heat capacity [J.kg-1.K-1]': 700.0, - 'Separator thermal conductivity [W.m-1.K-1]': 0.16, - 'Separator thickness [m]': 1.8e-05, - 'Typical current [A]': 1.1, - 'Typical electrolyte concentration [mol.m-3]': 1000.0, - 'Upper voltage cut-off [V]': 4.4} \ No newline at end of file + return { + # Negative electrode + "Negative electrode thickness [m]": 3.6e-05, + "Negative electrode conductivity [S.m-1]": 215.0, + "Maximum concentration in negative electrode [mol.m-3]": 33133.0, + "Negative electrode diffusivity [m2.s-1]": 3.3e-14, + "Negative electrode OCP [V]": graphite_LGM50_ocp_Chen2020, + "Negative electrode porosity": 0.25, + "Negative electrode active material volume fraction": 0.75, + "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, + "Negative electrode Bruggeman coefficient (electrode)": 1.5, + "Negative electrode cation signed stoichiometry": -1.0, + "Negative electrode electrons in reaction": 1.0, + "Negative electrode charge transfer coefficient": 0.5, + "Negative electrode double-layer capacity [F.m-2]": 0.2, + "Negative electrode exchange-current density [A.m-2]": graphite_LGM50_electrolyte_exchange_current_density_Chen2020, + "Negative electrode density [kg.m-3]": 1657.0, + "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, + "Negative electrode OCP entropic change [V.K-1]": 0.0, + "Initial concentration in negative electrode [mol.m-3]": 28831.45783, + # Separator + "Separator thickness [m]": 1.8e-05, + "Separator porosity": 0.47, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator density [kg.m-3]": 397.0, + "Separator specific heat capacity [J.kg-1.K-1]": 700.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.16, + # Positive electrode + "Positive electrode thickness [m]": 8.1e-05, + "Positive electrode conductivity [S.m-1]": 0.33795074, + "Maximum concentration in positive electrode [mol.m-3]": 22806.0, + "Positive electrode diffusivity [m2.s-1]": 5.9e-18, + "Positive electrode OCP [V]": LFP_ocp_ashfar2017, + "Positive electrode porosity": 0.12728395, + "Positive electrode active material volume fraction": 0.28485556, + "Positive electrode Bruggeman coefficient (electrode)": 1.5, + "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, + "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode electrons in reaction": 1.0, + "Positive electrode charge transfer coefficient": 0.5, + "Positive electrode double-layer capacity [F.m-2]": 0.2, + "Positive electrode density [kg.m-3]": 2341.17, + "Positive electrode specific heat capacity [J.kg-1.K-1]": 1100.0, + "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, + "Positive electrode OCP entropic change [V.K-1]": 0.0, + "Positive electrode exchange-current density [A.m-2]": LFP_electrolyte_exchange_current_density_kashkooli2017, + "Initial concentration in positive electrode [mol.m-3]": 35.3766672, + # Other + "Negative current collector thickness [m]": 1e-05, + "Positive current collector thickness [m]": 1.9e-05, + "Electrode height [m]": 0.0649, + "Electrode width [m]": 1.78, + "Negative tab width [m]": 0.04, + "Negative tab centre y-coordinate [m]": 0.06, + "Negative tab centre z-coordinate [m]": 0.137, + "Positive tab width [m]": 0.04, + "Positive tab centre y-coordinate [m]": 0.147, + "Positive tab centre z-coordinate [m]": 0.137, + "Negative current collector conductivity [S.m-1]": 58411000.0, + "Positive current collector conductivity [S.m-1]": 36914000.0, + "Negative current collector density [kg.m-3]": 8960.0, + "Positive current collector density [kg.m-3]": 2700.0, + "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, + "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, + "Negative current collector thermal conductivity [W.m-1.K-1]": 401.0, + "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, + "Nominal cell capacity [A.h]": 1.1, + "Current function [A]": 1.1, + "Typical current [A]": 1.1, + "Negative particle radius [m]": 5.86e-06, + "Positive particle radius [m]": 1e-08, + "Typical electrolyte concentration [mol.m-3]": 1000.0, + "Initial concentration in electrolyte [mol.m-3]": 1000.0, + "Cation transference number": 0.2594, + "1 + dlnf/dlnc": 1.0, + "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Nyman2008, + "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Nyman2008, + "Reference temperature [K]": 298.15, + "Heat transfer coefficient [W.m-2.K-1]": 10.0, + "Ambient temperature [K]": 298.15, + "Number of electrodes connected in parallel to make a cell": 1.0, + "Number of cells connected in series to make a battery": 1.0, + "Lower voltage cut-off [V]": 2.0, + "Upper voltage cut-off [V]": 4.4, + "Initial temperature [K]": 298.15, + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Ramadass2004.py b/pybamm/input/parameters/lithium_ion/Ramadass2004.py index 989efab5b9..90245db9b8 100644 --- a/pybamm/input/parameters/lithium_ion/Ramadass2004.py +++ b/pybamm/input/parameters/lithium_ion/Ramadass2004.py @@ -1,3 +1,6 @@ +import pybamm + + def graphite_mcmb2528_diffusivity_Dualfoil1998(sto, T): """ Graphite MCMB 2528 diffusivity as a function of stochiometry, in this case the @@ -22,7 +25,7 @@ def graphite_mcmb2528_diffusivity_Dualfoil1998(sto, T): D_ref = 3.9 * 10 ** (-14) E_D_s = 42770 - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / 298.15 - 1 / T)) return D_ref * arrhenius @@ -44,8 +47,8 @@ def graphite_ocp_Ramadass2004(sto): + 0.029 * (sto**0.5) - 0.0172 / sto + 0.0019 / (sto**1.5) - + 0.2808 * exp(0.9 - 15 * sto) - - 0.7984 * exp(0.4465 * sto - 0.4108) + + 0.2808 * pybamm.exp(0.9 - 15 * sto) + - 0.7984 * pybamm.exp(0.4465 * sto - 0.4108) ) return u_eq @@ -81,7 +84,7 @@ def graphite_electrolyte_exchange_current_density_Ramadass2004( """ m_ref = 4.854 * 10 ** (-6) # (A/m2)(mol/m3)**1.5 E_r = 37480 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 @@ -104,15 +107,15 @@ def graphite_entropic_change_Moura2016(sto, c_s_max): """ du_dT = ( - -1.5 * (120.0 / c_s_max) * exp(-120 * sto) - + (0.0351 / (0.083 * c_s_max)) * ((cosh((sto - 0.286) / 0.083)) ** (-2)) - - (0.0045 / (0.119 * c_s_max)) * ((cosh((sto - 0.849) / 0.119)) ** (-2)) - - (0.035 / (0.05 * c_s_max)) * ((cosh((sto - 0.9233) / 0.05)) ** (-2)) - - (0.0147 / (0.034 * c_s_max)) * ((cosh((sto - 0.5) / 0.034)) ** (-2)) - - (0.102 / (0.142 * c_s_max)) * ((cosh((sto - 0.194) / 0.142)) ** (-2)) - - (0.022 / (0.0164 * c_s_max)) * ((cosh((sto - 0.9) / 0.0164)) ** (-2)) - - (0.011 / (0.0226 * c_s_max)) * ((cosh((sto - 0.124) / 0.0226)) ** (-2)) - + (0.0155 / (0.029 * c_s_max)) * ((cosh((sto - 0.105) / 0.029)) ** (-2)) + -1.5 * (120.0 / c_s_max) * pybamm.exp(-120 * sto) + + (0.0351 / (0.083 * c_s_max)) * ((pybamm.cosh((sto - 0.286) / 0.083)) ** (-2)) + - (0.0045 / (0.119 * c_s_max)) * ((pybamm.cosh((sto - 0.849) / 0.119)) ** (-2)) + - (0.035 / (0.05 * c_s_max)) * ((pybamm.cosh((sto - 0.9233) / 0.05)) ** (-2)) + - (0.0147 / (0.034 * c_s_max)) * ((pybamm.cosh((sto - 0.5) / 0.034)) ** (-2)) + - (0.102 / (0.142 * c_s_max)) * ((pybamm.cosh((sto - 0.194) / 0.142)) ** (-2)) + - (0.022 / (0.0164 * c_s_max)) * ((pybamm.cosh((sto - 0.9) / 0.0164)) ** (-2)) + - (0.011 / (0.0226 * c_s_max)) * ((pybamm.cosh((sto - 0.124) / 0.0226)) ** (-2)) + + (0.0155 / (0.029 * c_s_max)) * ((pybamm.cosh((sto - 0.105) / 0.029)) ** (-2)) ) return du_dT @@ -142,7 +145,7 @@ def lico2_diffusivity_Ramadass2004(sto, T): """ D_ref = 1 * 10 ** (-14) E_D_s = 18550 - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / 298.15 - 1 / T)) return D_ref * arrhenius @@ -215,7 +218,7 @@ def lico2_electrolyte_exchange_current_density_Ramadass2004(c_e, c_s_surf, c_s_m """ m_ref = 2.252 * 10 ** (-6) # (A/m2)(mol/m3)**1.5 E_r = 39570 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 @@ -242,12 +245,12 @@ def lico2_entropic_change_Moura2016(sto, c_s_max): sto = stretch * sto du_dT = ( - 0.07645 * (-54.4806 / c_s_max) * ((1.0 / cosh(30.834 - 54.4806 * sto)) ** 2) - + 2.1581 * (-50.294 / c_s_max) * ((cosh(52.294 - 50.294 * sto)) ** (-2)) - + 0.14169 * (19.854 / c_s_max) * ((cosh(11.0923 - 19.8543 * sto)) ** (-2)) - - 0.2051 * (5.4888 / c_s_max) * ((cosh(1.4684 - 5.4888 * sto)) ** (-2)) - - (0.2531 / 0.1316 / c_s_max) * ((cosh((-sto + 0.56478) / 0.1316)) ** (-2)) - - (0.02167 / 0.006 / c_s_max) * ((cosh((sto - 0.525) / 0.006)) ** (-2)) + 0.07645 * (-54.4806 / c_s_max) * ((1.0 / pybamm.cosh(30.834 - 54.4806 * sto)) ** 2) + + 2.1581 * (-50.294 / c_s_max) * ((pybamm.cosh(52.294 - 50.294 * sto)) ** (-2)) + + 0.14169 * (19.854 / c_s_max) * ((pybamm.cosh(11.0923 - 19.8543 * sto)) ** (-2)) + - 0.2051 * (5.4888 / c_s_max) * ((pybamm.cosh(1.4684 - 5.4888 * sto)) ** (-2)) + - (0.2531 / 0.1316 / c_s_max) * ((pybamm.cosh((-sto + 0.56478) / 0.1316)) ** (-2)) + - (0.02167 / 0.006 / c_s_max) * ((pybamm.cosh((sto - 0.525) / 0.006)) ** (-2)) ) return du_dT @@ -278,7 +281,7 @@ def electrolyte_diffusivity_Ramadass2004(c_e, T): D_c_e = 7.5e-10 E_D_e = 37040 - arrhenius = exp(E_D_e / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_D_e / pybamm.constants.R * (1 / 298.15 - 1 / T)) return D_c_e * arrhenius @@ -319,113 +322,120 @@ def electrolyte_conductivity_Ramadass2004(c_e, T): ) * 1e3 # and here there should not be an exponent E_k_e = 34700 - arrhenius = exp(E_k_e / constants.R * (1 / 298.15 - 1 / T)) + arrhenius = pybamm.exp(E_k_e / pybamm.constants.R * (1 / 298.15 - 1 / T)) return sigma_e * arrhenius + def get_parameter_values(): - return {'1 + dlnf/dlnc': 1.0, - 'Ambient temperature [K]': 298.15, - 'Bulk solvent concentration [mol.m-3]': 2636.0, - 'Cation transference number': 0.363, - 'Current function [A]': 1.0, - 'EC diffusivity [m2.s-1]': 2e-18, - 'EC initial concentration in electrolyte [mol.m-3]': 4541.0, - 'Edge heat transfer coefficient [W.m-2.K-1]': 0.3, - 'Electrode height [m]': 0.057, - 'Electrode width [m]': 1.060692, - 'Electrolyte conductivity [S.m-1]': electrolyte_conductivity_Ramadass2004, - 'Electrolyte diffusivity [m2.s-1]': electrolyte_diffusivity_Ramadass2004, - 'Initial concentration in electrolyte [mol.m-3]': 1000.0, - 'Initial concentration in negative electrode [mol.m-3]': 22610.7, - 'Initial concentration in positive electrode [mol.m-3]': 25777.5, - 'Initial inner SEI thickness [m]': 2.5e-09, - 'Initial outer SEI thickness [m]': 2.5e-09, - 'Initial temperature [K]': 298.15, - 'Inner SEI electron conductivity [S.m-1]': 8.95e-14, - 'Inner SEI lithium interstitial diffusivity [m2.s-1]': 1e-20, - 'Inner SEI open-circuit potential [V]': 0.1, - 'Inner SEI partial molar volume [m3.mol-1]': 9.585e-05, - 'Inner SEI reaction proportion': 0.5, - 'Lithium interstitial reference concentration [mol.m-3]': 15.0, - 'Lower voltage cut-off [V]': 2.8, - 'Maximum concentration in negative electrode [mol.m-3]': 30555.0, - 'Maximum concentration in positive electrode [mol.m-3]': 51555.0, - 'Negative current collector conductivity [S.m-1]': 59600000.0, - 'Negative current collector density [kg.m-3]': 8954.0, - 'Negative current collector specific heat capacity [J.kg-1.K-1]': 385.0, - 'Negative current collector surface heat transfer coefficient [W.m-2.K-1]': 0.0, - 'Negative current collector thermal conductivity [W.m-1.K-1]': 401.0, - 'Negative current collector thickness [m]': 1.7e-05, - 'Negative electrode Bruggeman coefficient (electrode)': 4.0, - 'Negative electrode Bruggeman coefficient (electrolyte)': 4.0, - 'Negative electrode OCP [V]': graphite_ocp_Ramadass2004, - 'Negative electrode OCP entropic change [V.K-1]': graphite_entropic_change_Moura2016, - 'Negative electrode active material volume fraction': 0.49, - 'Negative electrode cation signed stoichiometry': -1.0, - 'Negative electrode charge transfer coefficient': 0.5, - 'Negative electrode conductivity [S.m-1]': 100.0, - 'Negative electrode density [kg.m-3]': 1657.0, - 'Negative electrode diffusivity [m2.s-1]': graphite_mcmb2528_diffusivity_Dualfoil1998, - 'Negative electrode double-layer capacity [F.m-2]': 0.2, - 'Negative electrode electrons in reaction': 1.0, - 'Negative electrode exchange-current density [A.m-2]': graphite_electrolyte_exchange_current_density_Ramadass2004, - 'Negative electrode porosity': 0.485, - 'Negative electrode specific heat capacity [J.kg-1.K-1]': 700.0, - 'Negative electrode thermal conductivity [W.m-1.K-1]': 1.7, - 'Negative electrode thickness [m]': 8.8e-05, - 'Negative particle radius [m]': 2e-06, - 'Negative tab centre y-coordinate [m]': 0.06, - 'Negative tab centre z-coordinate [m]': 0.137, - 'Negative tab heat transfer coefficient [W.m-2.K-1]': 10.0, - 'Negative tab width [m]': 0.04, - 'Nominal cell capacity [A.h]': 1.0, - 'Number of cells connected in series to make a battery': 1.0, - 'Number of electrodes connected in parallel to make a cell': 1.0, - 'Outer SEI open-circuit potential [V]': 0.8, - 'Outer SEI partial molar volume [m3.mol-1]': 9.585e-05, - 'Outer SEI solvent diffusivity [m2.s-1]': 2.5000000000000002e-22, - 'Positive current collector conductivity [S.m-1]': 35500000.0, - 'Positive current collector density [kg.m-3]': 2707.0, - 'Positive current collector specific heat capacity [J.kg-1.K-1]': 897.0, - 'Positive current collector surface heat transfer coefficient [W.m-2.K-1]': 0.0, - 'Positive current collector thermal conductivity [W.m-1.K-1]': 237.0, - 'Positive current collector thickness [m]': 2.3e-05, - 'Positive electrode Bruggeman coefficient (electrode)': 4.0, - 'Positive electrode Bruggeman coefficient (electrolyte)': 4.0, - 'Positive electrode OCP [V]': lico2_ocp_Ramadass2004, - 'Positive electrode OCP entropic change [V.K-1]': lico2_entropic_change_Moura2016, - 'Positive electrode active material volume fraction': 0.59, - 'Positive electrode cation signed stoichiometry': -1.0, - 'Positive electrode charge transfer coefficient': 0.5, - 'Positive electrode conductivity [S.m-1]': 100.0, - 'Positive electrode density [kg.m-3]': 3262.0, - 'Positive electrode diffusivity [m2.s-1]': lico2_diffusivity_Ramadass2004, - 'Positive electrode double-layer capacity [F.m-2]': 0.2, - 'Positive electrode electrons in reaction': 1.0, - 'Positive electrode exchange-current density [A.m-2]': lico2_electrolyte_exchange_current_density_Ramadass2004, - 'Positive electrode porosity': 0.385, - 'Positive electrode specific heat capacity [J.kg-1.K-1]': 700.0, - 'Positive electrode thermal conductivity [W.m-1.K-1]': 2.1, - 'Positive electrode thickness [m]': 8e-05, - 'Positive particle radius [m]': 2e-06, - 'Positive tab centre y-coordinate [m]': 0.147, - 'Positive tab centre z-coordinate [m]': 0.137, - 'Positive tab heat transfer coefficient [W.m-2.K-1]': 10.0, - 'Positive tab width [m]': 0.04, - 'Ratio of lithium moles to SEI moles': 2.0, - 'Reference temperature [K]': 298.15, - 'SEI growth activation energy [J.mol-1]': 0.0, - 'SEI kinetic rate constant [m.s-1]': 1e-12, - 'SEI open-circuit potential [V]': 0.0, - 'SEI reaction exchange current density [A.m-2]': 1.5e-06, - 'SEI resistivity [Ohm.m]': 200000.0, - 'Separator Bruggeman coefficient (electrolyte)': 1.9804586773134945, - 'Separator density [kg.m-3]': 1017.0, - 'Separator porosity': 0.508, - 'Separator specific heat capacity [J.kg-1.K-1]': 1978.0, - 'Separator thermal conductivity [W.m-1.K-1]': 0.34, - 'Separator thickness [m]': 2.5e-05, - 'Typical current [A]': 1.0, - 'Typical electrolyte concentration [mol.m-3]': 1000.0, - 'Upper voltage cut-off [V]': 4.2} \ No newline at end of file + return { + # Negative electrode + "Negative electrode thickness [m]": 8.8e-05, + "Negative electrode conductivity [S.m-1]": 100.0, + "Maximum concentration in negative electrode [mol.m-3]": 30555.0, + "Negative electrode diffusivity [m2.s-1]": graphite_mcmb2528_diffusivity_Dualfoil1998, + "Negative electrode OCP [V]": graphite_ocp_Ramadass2004, + "Negative electrode porosity": 0.485, + "Negative electrode active material volume fraction": 0.49, + "Negative electrode Bruggeman coefficient (electrolyte)": 4.0, + "Negative electrode Bruggeman coefficient (electrode)": 4.0, + "Negative electrode cation signed stoichiometry": -1.0, + "Negative electrode electrons in reaction": 1.0, + "Negative electrode charge transfer coefficient": 0.5, + "Negative electrode double-layer capacity [F.m-2]": 0.2, + "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_Ramadass2004, + "Negative electrode density [kg.m-3]": 1657.0, + "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, + "Negative electrode OCP entropic change [V.K-1]": graphite_entropic_change_Moura2016, + "Initial concentration in negative electrode [mol.m-3]": 22610.7, + # Separator + "Separator thickness [m]": 2.5e-05, + "Separator porosity": 0.508, + "Separator Bruggeman coefficient (electrolyte)": 1.9804586773134945, + "Separator density [kg.m-3]": 1017.0, + "Separator specific heat capacity [J.kg-1.K-1]": 1978.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.34, + # Positive electrode + "Positive electrode thickness [m]": 8e-05, + "Positive electrode conductivity [S.m-1]": 100.0, + "Maximum concentration in positive electrode [mol.m-3]": 51555.0, + "Positive electrode diffusivity [m2.s-1]": lico2_diffusivity_Ramadass2004, + "Positive electrode OCP [V]": lico2_ocp_Ramadass2004, + "Positive electrode porosity": 0.385, + "Positive electrode active material volume fraction": 0.59, + "Positive electrode Bruggeman coefficient (electrolyte)": 4.0, + "Positive electrode Bruggeman coefficient (electrode)": 4.0, + "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode electrons in reaction": 1.0, + "Positive electrode charge transfer coefficient": 0.5, + "Positive electrode double-layer capacity [F.m-2]": 0.2, + "Positive electrode exchange-current density [A.m-2]": lico2_electrolyte_exchange_current_density_Ramadass2004, + "Positive electrode density [kg.m-3]": 3262.0, + "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, + "Positive electrode OCP entropic change [V.K-1]": lico2_entropic_change_Moura2016, + "Initial concentration in positive electrode [mol.m-3]": 25777.5, + # Other + "Ratio of lithium moles to SEI moles": 2.0, + "Inner SEI reaction proportion": 0.5, + "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, + "SEI reaction exchange current density [A.m-2]": 1.5e-06, + "SEI resistivity [Ohm.m]": 200000.0, + "Outer SEI solvent diffusivity [m2.s-1]": 2.5000000000000002e-22, + "Bulk solvent concentration [mol.m-3]": 2636.0, + "Inner SEI open-circuit potential [V]": 0.1, + "Outer SEI open-circuit potential [V]": 0.8, + "Inner SEI electron conductivity [S.m-1]": 8.95e-14, + "Inner SEI lithium interstitial diffusivity [m2.s-1]": 1e-20, + "Lithium interstitial reference concentration [mol.m-3]": 15.0, + "Initial inner SEI thickness [m]": 2.5e-09, + "Initial outer SEI thickness [m]": 2.5e-09, + "EC initial concentration in electrolyte [mol.m-3]": 4541.0, + "EC diffusivity [m2.s-1]": 2e-18, + "SEI kinetic rate constant [m.s-1]": 1e-12, + "SEI open-circuit potential [V]": 0.0, + "SEI growth activation energy [J.mol-1]": 0.0, + "Negative current collector thickness [m]": 1.7e-05, + "Positive current collector thickness [m]": 2.3e-05, + "Electrode height [m]": 0.057, + "Electrode width [m]": 1.060692, + "Negative tab width [m]": 0.04, + "Negative tab centre y-coordinate [m]": 0.06, + "Negative tab centre z-coordinate [m]": 0.137, + "Positive tab width [m]": 0.04, + "Positive tab centre y-coordinate [m]": 0.147, + "Positive tab centre z-coordinate [m]": 0.137, + "Negative current collector conductivity [S.m-1]": 59600000.0, + "Positive current collector conductivity [S.m-1]": 35500000.0, + "Negative current collector density [kg.m-3]": 8954.0, + "Positive current collector density [kg.m-3]": 2707.0, + "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, + "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, + "Negative current collector thermal conductivity [W.m-1.K-1]": 401.0, + "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, + "Nominal cell capacity [A.h]": 1.0, + "Typical current [A]": 1.0, + "Current function [A]": 1.0, + "Negative particle radius [m]": 2e-06, + "Positive particle radius [m]": 2e-06, + "Typical electrolyte concentration [mol.m-3]": 1000.0, + "Initial concentration in electrolyte [mol.m-3]": 1000.0, + "Cation transference number": 0.363, + "1 + dlnf/dlnc": 1.0, + "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Ramadass2004, + "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Ramadass2004, + "Reference temperature [K]": 298.15, + "Ambient temperature [K]": 298.15, + "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, + "Positive current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, + "Negative tab heat transfer coefficient [W.m-2.K-1]": 10.0, + "Positive tab heat transfer coefficient [W.m-2.K-1]": 10.0, + "Edge heat transfer coefficient [W.m-2.K-1]": 0.3, + "Number of electrodes connected in parallel to make a cell": 1.0, + "Number of cells connected in series to make a battery": 1.0, + "Lower voltage cut-off [V]": 2.8, + "Upper voltage cut-off [V]": 4.2, + "Initial temperature [K]": 298.15, + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Xu2019.py b/pybamm/input/parameters/lithium_ion/Xu2019.py index 89b80026b3..94b387c414 100644 --- a/pybamm/input/parameters/lithium_ion/Xu2019.py +++ b/pybamm/input/parameters/lithium_ion/Xu2019.py @@ -1,3 +1,6 @@ +import pybamm + + def li_metal_electrolyte_exchange_current_density_Xu2019(c_e, c_Li, T): """ Exchange-current density for Butler-Volmer reactions between li metal and LiPF6 in @@ -24,7 +27,7 @@ def li_metal_electrolyte_exchange_current_density_Xu2019(c_e, c_Li, T): :class:`pybamm.Symbol` Exchange-current density [A.m-2] """ - m_ref = 3.5e-8 * constants.F # (A/m2)(mol/m3) - includes ref concentrations + m_ref = 3.5e-8 * pybamm.constants.F # (A/m2)(mol/m3) - includes ref concentrations return m_ref * c_Li**0.7 * c_e**0.3 @@ -55,7 +58,7 @@ def nmc_ocp_Xu2019(sto): - 2.0843 * (sto**3) + 3.5146 * (sto**4) - 2.2166 * (sto**5) - - 0.5623e-4 * pybamm.exp(109.451 * sto - 100.006) + - 0.5623e-4 * pybamm.pybamm.exp(109.451 * sto - 100.006) ) # # only valid in range ~(0.25,0.95) @@ -70,7 +73,7 @@ def nmc_ocp_Xu2019(sto): # - 9578.599274 * sto ** 2 # + 1409.309503 * sto # - 85.31153081 - # - 0.0003 * pybamm.exp(7.657 * sto ** 115) + # - 0.0003 * pybamm.pybamm.exp(7.657 * sto ** 115) # ) return u_eq @@ -104,7 +107,7 @@ def nmc_electrolyte_exchange_current_density_Xu2019(c_e, c_s_surf, c_s_max, T): Exchange-current density [A.m-2] """ # assuming implicit correction of incorrect units from the paper - m_ref = 5.76e-11 * constants.F # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = 5.76e-11 * pybamm.constants.F # (A/m2)(mol/m3)**1.5 - includes ref concentrations return m_ref * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 @@ -177,76 +180,83 @@ def electrolyte_conductivity_Valoen2005(c_e, T): ** 2 ) + def get_parameter_values(): - return {'1 + dlnf/dlnc': 1.0, - 'Ambient temperature [K]': 298.15, - 'Bulk solvent concentration [mol.m-3]': 2636.0, - 'Cation transference number': 0.38, - 'Current function [A]': 0.0024, - 'EC diffusivity [m2.s-1]': 2e-18, - 'EC initial concentration in electrolyte [mol.m-3]': 4541.0, - 'Electrode height [m]': 0.01, - 'Electrode width [m]': 0.0154, - 'Electrolyte conductivity [S.m-1]': electrolyte_conductivity_Valoen2005, - 'Electrolyte diffusivity [m2.s-1]': electrolyte_diffusivity_Valoen2005, - 'Exchange-current density for plating [A.m-2]': li_metal_electrolyte_exchange_current_density_Xu2019, - 'Heat transfer coefficient [W.m-2.K-1]': 10.0, - 'Initial concentration in electrolyte [mol.m-3]': 1000.0, - 'Initial concentration in positive electrode [mol.m-3]': 4631.0, - 'Initial inner SEI thickness [m]': 2.5e-09, - 'Initial outer SEI thickness [m]': 2.5e-09, - 'Initial temperature [K]': 298.15, - 'Inner SEI electron conductivity [S.m-1]': 8.95e-14, - 'Inner SEI lithium interstitial diffusivity [m2.s-1]': 1e-20, - 'Inner SEI open-circuit potential [V]': 0.1, - 'Inner SEI partial molar volume [m3.mol-1]': 9.585e-05, - 'Inner SEI reaction proportion': 0.5, - 'Lithium interstitial reference concentration [mol.m-3]': 15.0, - 'Lower voltage cut-off [V]': 3.5, - 'Maximum concentration in positive electrode [mol.m-3]': 48230.0, - 'Negative electrode OCP [V]': 0.0, - 'Negative electrode OCP entropic change [V.K-1]': 0.0, - 'Negative electrode cation signed stoichiometry': -1.0, - 'Negative electrode charge transfer coefficient': 0.5, - 'Negative electrode conductivity [S.m-1]': 10776000.0, - 'Negative electrode double-layer capacity [F.m-2]': 0.2, - 'Negative electrode electrons in reaction': 1.0, - 'Negative electrode reaction-driven LAM factor [m3.mol-1]': 0.0, - 'Negative electrode thickness [m]': 0.0007, - 'Nominal cell capacity [A.h]': 0.0024, - 'Number of cells connected in series to make a battery': 1.0, - 'Number of electrodes connected in parallel to make a cell': 1.0, - 'Outer SEI open-circuit potential [V]': 0.8, - 'Outer SEI partial molar volume [m3.mol-1]': 9.585e-05, - 'Outer SEI solvent diffusivity [m2.s-1]': 2.5000000000000002e-22, - 'Positive electrode Bruggeman coefficient (electrode)': 1.5, - 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5, - 'Positive electrode OCP [V]': nmc_ocp_Xu2019, - 'Positive electrode OCP entropic change [V.K-1]': 0.0, - 'Positive electrode active material volume fraction': 0.518, - 'Positive electrode cation signed stoichiometry': -1.0, - 'Positive electrode charge transfer coefficient': 0.5, - 'Positive electrode conductivity [S.m-1]': 100.0, - 'Positive electrode diffusivity [m2.s-1]': 1e-14, - 'Positive electrode double-layer capacity [F.m-2]': 0.2, - 'Positive electrode electrons in reaction': 1.0, - 'Positive electrode exchange-current density [A.m-2]': nmc_electrolyte_exchange_current_density_Xu2019, - 'Positive electrode porosity': 0.331, - 'Positive electrode reaction-driven LAM factor [m3.mol-1]': 0.0, - 'Positive electrode thickness [m]': 4.2e-05, - 'Positive particle radius [m]': 5.3e-06, - 'Ratio of lithium moles to SEI moles': 2.0, - 'Reference temperature [K]': 298.15, - 'SEI growth activation energy [J.mol-1]': 0.0, - 'SEI kinetic rate constant [m.s-1]': 1e-12, - 'SEI open-circuit potential [V]': 0.4, - 'SEI reaction exchange current density [A.m-2]': 1.5e-07, - 'SEI resistivity [Ohm.m]': 200000.0, - 'Separator Bruggeman coefficient (electrode)': 1.5, - 'Separator Bruggeman coefficient (electrolyte)': 1.5, - 'Separator porosity': 0.39, - 'Separator thickness [m]': 2.5e-05, - 'Typical current [A]': 0.0024, - 'Typical electrolyte concentration [mol.m-3]': 1000.0, - 'Typical plated lithium concentration [mol.m-3]': 76900.0, - 'Upper voltage cut-off [V]': 4.2} \ No newline at end of file + return { + # Negative electrode + "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Negative electrode thickness [m]": 0.0007, + "Negative electrode OCP [V]": 0.0, + "Negative electrode conductivity [S.m-1]": 10776000.0, + "Negative electrode OCP entropic change [V.K-1]": 0.0, + "Negative electrode cation signed stoichiometry": -1.0, + "Negative electrode electrons in reaction": 1.0, + "Negative electrode charge transfer coefficient": 0.5, + "Negative electrode double-layer capacity [F.m-2]": 0.2, + # Separator + "Separator thickness [m]": 2.5e-05, + "Separator porosity": 0.39, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator Bruggeman coefficient (electrode)": 1.5, + # Positive electrode + "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Positive electrode thickness [m]": 4.2e-05, + "Positive electrode conductivity [S.m-1]": 100.0, + "Maximum concentration in positive electrode [mol.m-3]": 48230.0, + "Positive electrode diffusivity [m2.s-1]": 1e-14, + "Positive electrode OCP [V]": nmc_ocp_Xu2019, + "Positive electrode porosity": 0.331, + "Positive electrode active material volume fraction": 0.518, + "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, + "Positive electrode Bruggeman coefficient (electrode)": 1.5, + "Positive electrode OCP entropic change [V.K-1]": 0.0, + "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode electrons in reaction": 1.0, + "Positive electrode charge transfer coefficient": 0.5, + "Positive electrode exchange-current density [A.m-2]": nmc_electrolyte_exchange_current_density_Xu2019, + "Positive electrode double-layer capacity [F.m-2]": 0.2, + "Initial concentration in positive electrode [mol.m-3]": 4631.0, + # Other + "Ratio of lithium moles to SEI moles": 2.0, + "Inner SEI reaction proportion": 0.5, + "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, + "SEI reaction exchange current density [A.m-2]": 1.5e-07, + "SEI resistivity [Ohm.m]": 200000.0, + "Outer SEI solvent diffusivity [m2.s-1]": 2.5000000000000002e-22, + "Bulk solvent concentration [mol.m-3]": 2636.0, + "Inner SEI open-circuit potential [V]": 0.1, + "Outer SEI open-circuit potential [V]": 0.8, + "Inner SEI electron conductivity [S.m-1]": 8.95e-14, + "Inner SEI lithium interstitial diffusivity [m2.s-1]": 1e-20, + "Lithium interstitial reference concentration [mol.m-3]": 15.0, + "Initial inner SEI thickness [m]": 2.5e-09, + "Initial outer SEI thickness [m]": 2.5e-09, + "EC initial concentration in electrolyte [mol.m-3]": 4541.0, + "EC diffusivity [m2.s-1]": 2e-18, + "SEI kinetic rate constant [m.s-1]": 1e-12, + "SEI open-circuit potential [V]": 0.4, + "SEI growth activation energy [J.mol-1]": 0.0, + "Electrode height [m]": 0.01, + "Electrode width [m]": 0.0154, + "Nominal cell capacity [A.h]": 0.0024, + "Typical current [A]": 0.0024, + "Current function [A]": 0.0024, + "Typical plated lithium concentration [mol.m-3]": 76900.0, + "Exchange-current density for plating [A.m-2]": li_metal_electrolyte_exchange_current_density_Xu2019, + "Positive particle radius [m]": 5.3e-06, + "Typical electrolyte concentration [mol.m-3]": 1000.0, + "Initial concentration in electrolyte [mol.m-3]": 1000.0, + "Cation transference number": 0.38, + "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Valoen2005, + "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Valoen2005, + "1 + dlnf/dlnc": 1.0, + "Ambient temperature [K]": 298.15, + "Reference temperature [K]": 298.15, + "Heat transfer coefficient [W.m-2.K-1]": 10.0, + "Number of electrodes connected in parallel to make a cell": 1.0, + "Number of cells connected in series to make a battery": 1.0, + "Lower voltage cut-off [V]": 3.5, + "Upper voltage cut-off [V]": 4.2, + "Initial temperature [K]": 298.15, + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/graphite_LGM50_ocp_Chen2020.csv b/pybamm/input/parameters/lithium_ion/graphite_LGM50_ocp_Chen2020.csv new file mode 100644 index 0000000000..a7f8159e0b --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/graphite_LGM50_ocp_Chen2020.csv @@ -0,0 +1,238 @@ +0.000000000000000000e+00,1.817727483793339927e+00 +3.129623099194350083e-02,1.082880700000000029e+00 +3.499901742313830250e-02,9.959379400000000215e-01 +3.870179844267390007e-02,9.002339799999999892e-01 +4.240457604009070097e-02,7.964943100000000387e-01 +4.610735676679689893e-02,7.335442899999999877e-01 +4.981014728648330142e-02,6.666431400000000229e-01 +5.351291695505130258e-02,6.413714900000000441e-01 +5.721568000804520132e-02,5.981386899999999729e-01 +6.091844956483719736e-02,5.670836000000000210e-01 +6.462121788965810576e-02,5.474618100000000487e-01 +6.832398993729429937e-02,5.306839899999999943e-01 +7.202675162067259662e-02,5.130473399999999629e-01 +7.572951196432030352e-02,4.939409200000000055e-01 +7.943227239726670386e-02,4.792627400000000204e-01 +8.313503093982879677e-02,4.606525899999999729e-01 +8.683778629704409779e-02,4.599272600000000044e-01 +9.054054440929369674e-02,4.380150099999999824e-01 +9.424331249626340112e-02,4.243866499999999764e-01 +9.794607007156390377e-02,4.115026900000000043e-01 +1.016488250298570040e-01,4.003365899999999922e-01 +1.053515790517000061e-01,3.895713399999999882e-01 +1.090543363662490051e-01,3.775653800000000060e-01 +1.127570974301270040e-01,3.629254100000000038e-01 +1.164598491532889968e-01,3.435708599999999779e-01 +1.201626080862479989e-01,3.406313999999999731e-01 +1.238653569843320007e-01,3.229946799999999785e-01 +1.275681122080279950e-01,3.137945799999999896e-01 +1.312708644604740071e-01,3.079538600000000237e-01 +1.349736206966070107e-01,2.920731899999999825e-01 +1.386763826189350013e-01,2.869768699999999950e-01 +1.423791302188029961e-01,2.740547700000000031e-01 +1.460818902042889944e-01,2.670497000000000010e-01 +1.497846498663570058e-01,2.585749299999999806e-01 +1.534874053980720132e-01,2.526578300000000277e-01 +1.571901756580049991e-01,2.482677699999999987e-01 +1.608929390406249882e-01,2.414344999999999963e-01 +1.645957006249859911e-01,2.336277800000000071e-01 +1.682984701283530005e-01,2.295621800000000046e-01 +1.720012237594620019e-01,2.237023599999999890e-01 +1.757039875852690058e-01,2.218127099999999963e-01 +1.794067385283510119e-01,2.208965099999999904e-01 +1.831095011867990008e-01,2.194268000000000052e-01 +1.868122857437589934e-01,2.183006399999999902e-01 +1.905150439888650127e-01,2.184533300000000011e-01 +1.942177984499509902e-01,2.175371500000000125e-01 +1.979205609333170024e-01,2.171935700000000025e-01 +2.016233375304480047e-01,2.163537299999999941e-01 +2.053260999073329984e-01,2.166782200000000047e-01 +2.090288634215139996e-01,2.173844400000000121e-01 +2.127316378112679984e-01,2.146931300000000098e-01 +2.164344000186889938e-01,2.154184600000000060e-01 +2.201371587585519984e-01,2.146549500000000110e-01 +2.238399329057280118e-01,2.135479000000000127e-01 +2.275427048595710100e-01,2.139296400000000042e-01 +2.312454729414349930e-01,2.107420600000000088e-01 +2.349482466088839983e-01,2.087378799999999868e-01 +2.386510070305279951e-01,2.046531900000000126e-01 +2.423537710967559877e-01,2.020573200000000125e-01 +2.460565347797359914e-01,1.977435800000000021e-01 +2.497592960425510100e-01,1.944414700000000051e-01 +2.534620753054270259e-01,1.919028500000000137e-01 +2.571648555416489734e-01,1.885053100000000093e-01 +2.608676233988099780e-01,1.858139900000000122e-01 +2.645703883436820170e-01,1.832753699999999930e-01 +2.682731419601270262e-01,1.815765900000000099e-01 +2.719758990081129757e-01,1.781408800000000014e-01 +2.756786708048760137e-01,1.752968599999999988e-01 +2.793814375635009783e-01,1.719374999999999931e-01 +2.830842088906149745e-01,1.693416100000000035e-01 +2.867869838380989744e-01,1.675664900000000124e-01 +2.904897414218740037e-01,1.660967600000000099e-01 +2.941925113219470145e-01,1.641498500000000138e-01 +2.978952878247769775e-01,1.626037800000000033e-01 +3.015980640661389822e-01,1.622411300000000112e-01 +3.053008297662639925e-01,1.600270000000000026e-01 +3.090036058188079804e-01,1.582709599999999883e-01 +3.127063662340199834e-01,1.588054000000000132e-01 +3.164091289357259806e-01,1.555223799999999879e-01 +3.201118922087349827e-01,1.558086899999999997e-01 +3.238146577102329893e-01,1.522011799999999915e-01 +3.275174398078899984e-01,1.511132000000000031e-01 +3.312202054641589788e-01,1.498725300000000038e-01 +3.349229684661539919e-01,1.487463699999999889e-01 +3.386257507253350174e-01,1.467803699999999933e-01 +3.423285277631040180e-01,1.462077599999999922e-01 +3.460313098688759803e-01,1.455587899999999935e-01 +3.497340843978539726e-01,1.438981900000000091e-01 +3.534368548973220170e-01,1.435927899999999979e-01 +3.571396277070609804e-01,1.424284600000000067e-01 +3.608424115979880220e-01,1.403861200000000031e-01 +3.645451748619150112e-01,1.388209599999999933e-01 +3.682479482418780092e-01,1.395462799999999948e-01 +3.719507148678439790e-01,1.394699199999999972e-01 +3.756534823993880057e-01,1.378093400000000024e-01 +3.793562598185509782e-01,1.397371400000000097e-01 +3.830590445511389830e-01,1.369885799999999987e-01 +3.867618196650879914e-01,1.352325400000000122e-01 +3.904645965736759927e-01,1.344117800000000085e-01 +3.941673743717780121e-01,1.352897999999999878e-01 +3.978701467445500128e-01,1.350798500000000013e-01 +4.015729110820959735e-01,1.364732100000000115e-01 +4.052756738106519929e-01,1.360151199999999894e-01 +4.089784440474539817e-01,1.343545200000000051e-01 +4.126812051170359874e-01,1.334764999999999979e-01 +4.163839823464289824e-01,1.348316999999999988e-01 +4.200867608502339978e-01,1.327511799999999964e-01 +4.237895281717150020e-01,1.328657099999999980e-01 +4.274922955492609922e-01,1.326366700000000121e-01 +4.311950608652529993e-01,1.345644699999999916e-01 +4.348978367883050145e-01,1.347171799999999919e-01 +4.386006109390599983e-01,1.339536899999999864e-01 +4.423033816555619890e-01,1.344881400000000060e-01 +4.460061481197620248e-01,1.334764999999999979e-01 +4.497089255048620227e-01,1.329802300000000048e-01 +4.534116841912019802e-01,1.325984900000000133e-01 +4.571144409164379918e-01,1.333810699999999905e-01 +4.608171930287809914e-01,1.330947600000000064e-01 +4.645199433844570125e-01,1.327511799999999964e-01 +4.682226940058070164e-01,1.344308700000000079e-01 +4.719254492733059858e-01,1.331520200000000098e-01 +4.756282149010069848e-01,1.327129999999999976e-01 +4.793309824757879811e-01,1.330184000000000089e-01 +4.830337465492069993e-01,1.327893599999999952e-01 +4.867365114519550118e-01,1.322549100000000033e-01 +4.904392634454179944e-01,1.331711100000000092e-01 +4.941420325451599815e-01,1.326366700000000121e-01 +4.978448166265099784e-01,1.318731599999999893e-01 +5.015475878963390199e-01,1.326557399999999942e-01 +5.052503561830520296e-01,1.325030500000000111e-01 +5.089531059234190247e-01,1.332474499999999895e-01 +5.126558551861970514e-01,1.320449599999999890e-01 +5.163586149748520260e-01,1.324266900000000136e-01 +5.200613856412800162e-01,1.323312700000000008e-01 +5.237641536728180336e-01,1.319876899999999909e-01 +5.274669217737240068e-01,1.325412199999999874e-01 +5.311696914113630541e-01,1.314532499999999937e-01 +5.348724514051339529e-01,1.329802300000000048e-01 +5.385752073729810352e-01,1.316822900000000074e-01 +5.422779743910930428e-01,1.313577999999999968e-01 +5.459807403527979774e-01,1.323503600000000002e-01 +5.496835012047329716e-01,1.312051100000000137e-01 +5.533862702158910407e-01,1.308997100000000025e-01 +5.570890199884339644e-01,1.310905800000000121e-01 +5.607917842653520335e-01,1.308233599999999996e-01 +5.644945370801970341e-01,1.301171299999999975e-01 +5.681972991912119797e-01,1.298690000000000122e-01 +5.719000574498539491e-01,1.299262599999999879e-01 +5.756028184736490250e-01,1.294299800000000000e-01 +5.793055818984890193e-01,1.279602599999999923e-01 +5.830083510785419865e-01,1.286283099999999957e-01 +5.867111191605060005e-01,1.265668899999999875e-01 +5.904138858662839606e-01,1.273494699999999924e-01 +5.941166416914660520e-01,1.250971600000000128e-01 +5.978194119813919905e-01,1.211079099999999992e-01 +6.015221821877869690e-01,1.183975099999999975e-01 +6.052249553911169810e-01,1.124422600000000022e-01 +6.089277236827740358e-01,1.130721400000000015e-01 +6.126304784124010361e-01,1.092164999999999941e-01 +6.163332498932819759e-01,1.068305799999999944e-01 +6.200360270331930490e-01,1.043301400000000018e-01 +6.237387979524009474e-01,1.053035900000000025e-01 +6.274415623946070220e-01,1.005699300000000018e-01 +6.311443259250589799e-01,9.950104399999999683e-02 +6.348471145123250059e-01,9.854667599999999972e-02 +6.385498842217429694e-01,9.921473299999999940e-02 +6.422526505860669532e-01,9.541635199999999595e-02 +6.459554301019240219e-01,9.980643499999999890e-02 +6.496582316874179863e-01,9.866119900000000498e-02 +6.533610045029599744e-01,9.560722100000000612e-02 +6.570637746627370213e-01,9.755413200000000173e-02 +6.607665637167929873e-01,9.612258499999999650e-02 +6.644693393532290493e-01,9.430928500000000658e-02 +6.681721190805980370e-01,9.661885400000000401e-02 +6.718748911568019899e-01,9.366031700000000682e-02 +6.755776702528829558e-01,9.522547600000000334e-02 +6.792804414992950068e-01,9.535908699999999516e-02 +6.829832201919220358e-01,9.316404200000000246e-02 +6.866860016405059719e-01,9.450016199999999866e-02 +6.903887789002780551e-01,9.308769599999999755e-02 +6.940915554740280102e-01,9.343126399999999998e-02 +6.977943250050440138e-01,9.324039500000000369e-02 +7.014970936568940552e-01,9.350761800000000068e-02 +7.051998752329049491e-01,9.339309499999999542e-02 +7.089026390719930237e-01,9.291590800000000538e-02 +7.126054044364960038e-01,9.303042999999999729e-02 +7.163081847714160011e-01,9.262959699999999408e-02 +7.200109540889150228e-01,9.324039500000000369e-02 +7.237137113549270140e-01,9.261051600000000383e-02 +7.274164835368069904e-01,9.249598500000000278e-02 +7.311192520713369891e-01,9.240055099999999744e-02 +7.348220356301270462e-01,9.253416200000000313e-02 +7.385247998076800435e-01,9.209515199999999957e-02 +7.422275681050030105e-01,9.234328599999999665e-02 +7.459303398169290222e-01,9.366031700000000682e-02 +7.496331189215349466e-01,9.333582999999999463e-02 +7.533358915465799832e-01,9.322130700000000325e-02 +7.570386845170039569e-01,9.264868499999999452e-02 +7.607414599617690065e-01,9.253416200000000313e-02 +7.644442241361509849e-01,9.243872799999999779e-02 +7.681469841679049448e-01,9.230511600000000649e-02 +7.718497597410769462e-01,9.310678399999999799e-02 +7.755525330801089634e-01,9.165614800000000673e-02 +7.792553077720439925e-01,9.159888300000000594e-02 +7.829580729262249905e-01,9.207606299999999966e-02 +7.866608525527829521e-01,9.175158299999999767e-02 +7.903636394149520239e-01,9.177067099999999811e-02 +7.940664067981429985e-01,9.236237399999999709e-02 +7.977691805707299855e-01,9.241963899999999787e-02 +8.014719720619220000e-01,9.320221800000000334e-02 +8.051747402050569713e-01,9.199971699999999475e-02 +8.088775134708300341e-01,9.167522899999999697e-02 +8.125802783307759514e-01,9.322130700000000325e-02 +8.162830430544779636e-01,9.190428300000000328e-02 +8.199858070953079947e-01,9.167522899999999697e-02 +8.236885818894390532e-01,9.285865000000000091e-02 +8.273913629032729755e-01,9.180884100000000214e-02 +8.310941115147779668e-01,9.150344900000000059e-02 +8.347968753635589545e-01,9.186610600000000293e-02 +8.384996539669460347e-01,9.201880499999999519e-02 +8.422024181078430205e-01,9.320221800000000334e-02 +8.459051854277029880e-01,9.131257199999999463e-02 +8.496079662694989709e-01,9.117896100000000281e-02 +8.533107464240720086e-01,9.133166099999999454e-02 +8.570135270634630098e-01,9.089265000000000538e-02 +8.607163089963270064e-01,9.058725099999999364e-02 +8.644190736264629749e-01,9.051090500000000261e-02 +8.681218605582039505e-01,9.033911699999999656e-02 +8.718246446641879643e-01,9.041546999999999779e-02 +8.755274158203549817e-01,9.112169600000000202e-02 +8.792301926070029694e-01,8.946110300000000015e-02 +8.829329576317990202e-01,8.999554799999999466e-02 +8.866357278062549918e-01,8.921296900000000307e-02 +8.903384941029659494e-01,8.881212800000000407e-02 +8.940412563639039689e-01,8.797229099999999413e-02 +8.977440369421989530e-01,8.709427000000000141e-02 +9.014468007390410431e-01,8.503283600000000053e-02 +1.000000000000000000e+00,7.601530817929870454e-02 diff --git a/pybamm/input/parameters/lithium_ion/graphite_ocp_Ecker2015.csv b/pybamm/input/parameters/lithium_ion/graphite_ocp_Ecker2015.csv new file mode 100644 index 0000000000..a59513380a --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/graphite_ocp_Ecker2015.csv @@ -0,0 +1,41 @@ +1.515151515151400008e-03,1.432515337423312829e+00 +6.060606060606099632e-03,8.619631901840490995e-01 +1.060606060606059976e-02,7.914110429447853701e-01 +1.666666666666660052e-02,6.595092024539876974e-01 +2.121212121212119953e-02,5.797546012269938487e-01 +2.272727272727270015e-02,5.245398773006135773e-01 +3.030303030303019979e-02,4.754601226993864227e-01 +3.939393939393930066e-02,4.141104294478525905e-01 +4.545454545454540030e-02,3.680981595092023273e-01 +5.303030303030289994e-02,3.312883435582820724e-01 +6.666666666666659635e-02,2.822085889570550843e-01 +7.878787878787869847e-02,2.484662576687114988e-01 +8.939393939393930344e-02,2.239263803680981990e-01 +1.015151515151514056e-01,2.208588957055215019e-01 +1.272727272727272874e-01,2.116564417177914936e-01 +1.424242424242423977e-01,2.024539877300612911e-01 +1.590909090909090884e-01,1.993865030674845940e-01 +1.772727272727271930e-01,1.932515337423311996e-01 +1.939393939393939115e-01,1.840490797546011914e-01 +2.136363636363635965e-01,1.809815950920246053e-01 +2.333333333333331983e-01,1.717791411042942917e-01 +2.575757575757575135e-01,1.656441717791410084e-01 +2.787878787878788067e-01,1.625766871165643113e-01 +3.030303030303029832e-01,1.533742331288343030e-01 +3.287878787878787956e-01,1.411042944785274034e-01 +3.515151515151515027e-01,1.349693251533740923e-01 +3.712121212121211045e-01,1.319018404907973951e-01 +3.924242424242422866e-01,1.288343558282210033e-01 +5.681818181818183433e-01,1.257668711656441118e-01 +5.878787878787878896e-01,1.226993865030674008e-01 +6.060606060606061884e-01,1.165644171779141036e-01 +6.272727272727272041e-01,1.012269938650307011e-01 +6.545454545454545414e-01,9.509202453987719572e-02 +6.742424242424243097e-01,9.509202453987719572e-02 +6.939393939393938560e-01,8.895705521472380140e-02 +7.181818181818182545e-01,8.895705521472380140e-02 +7.393939393939392701e-01,8.588957055214710423e-02 +8.909090909090910948e-01,8.282208588957069850e-02 +9.560606060606060552e-01,8.272208588957069564e-02 +9.772727272727271819e-01,7.975460122699379317e-02 +1.000000000000000000e+00,7.055214723926379883e-02 diff --git a/pybamm/input/parameters/lithium_ion/graphite_ocp_Enertech_Ai2020.csv b/pybamm/input/parameters/lithium_ion/graphite_ocp_Enertech_Ai2020.csv new file mode 100644 index 0000000000..e048a4a787 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/graphite_ocp_Enertech_Ai2020.csv @@ -0,0 +1,125 @@ +0.000000000000000000e+00,3.500000000000000000e+00 +5.000000000000000104e-04,3.000000000000000000e+00 +1.270410000000000029e-03,1.040000000000000036e+00 +1.524790000000000043e-03,1.010000000000000009e+00 +1.905950000000000005e-03,9.726538369999999656e-01 +2.223558000000000045e-03,9.424905500000000380e-01 +4.060547000000000288e-03,8.162405919999999870e-01 +4.820150999999999950e-03,7.802809280000000403e-01 +6.463942999999999772e-03,7.189626199999999967e-01 +7.413369999999999856e-03,6.913747569999999509e-01 +8.616505999999999471e-03,6.613917809999999564e-01 +9.123416999999999985e-03,6.499622320000000286e-01 +1.076822600000000053e-02,6.165173000000000458e-01 +1.266504599999999925e-02,5.833108580000000432e-01 +1.411834399999999969e-02,5.608307829999999994e-01 +1.778675199999999942e-02,5.124394759999999494e-01 +2.069469000000000170e-02,4.802513600000000160e-01 +2.398379900000000009e-02,4.484958669999999925e-01 +3.050217499999999943e-02,3.959888100000000244e-01 +3.600113499999999661e-02,3.595076810000000234e-01 +3.960666200000000081e-02,3.384779809999999833e-01 +5.914808299999999713e-02,2.563195580000000029e-01 +6.129794200000000109e-02,2.511736099999999916e-01 +7.134983300000000139e-02,2.360553240000000108e-01 +8.026552600000000370e-02,2.310092169999999889e-01 +1.192080789999999946e-01,2.232966000000000117e-01 +1.281205480000000008e-01,2.182842439999999884e-01 +1.342537069999999999e-01,2.132738590000000101e-01 +1.415845940000000081e-01,2.082283620000000002e-01 +1.508741769999999982e-01,2.032097390000000003e-01 +1.606091309999999883e-01,1.986209849999999999e-01 +1.703459569999999923e-01,1.938163760000000124e-01 +1.897477690000000106e-01,1.841669149999999866e-01 +2.092222529999999969e-01,1.767905320000000002e-01 +2.190177299999999938e-01,1.738304410000000022e-01 +2.287565789999999877e-01,1.709632610000000053e-01 +2.385525749999999889e-01,1.679035010000000105e-01 +2.483492310000000036e-01,1.646499790000000019e-01 +2.580840229999999957e-01,1.614913319999999874e-01 +2.678211839999999899e-01,1.585938299999999912e-01 +2.874153500000000139e-01,1.533991570000000082e-01 +2.972098109999999904e-01,1.510023189999999960e-01 +3.070049420000000029e-01,1.488621300000000092e-01 +3.167983959999999821e-01,1.469189110000000131e-01 +3.265340319999999741e-01,1.453281419999999935e-01 +3.363215580000000204e-01,1.440021089999999893e-01 +3.460617579999999971e-01,1.429021249999999910e-01 +3.558563920000000214e-01,1.420142620000000022e-01 +3.655930439999999781e-01,1.413160079999999930e-01 +3.753880119999999931e-01,1.407591049999999955e-01 +3.851207810000000231e-01,1.403143229999999908e-01 +3.949155770000000176e-01,1.399423220000000079e-01 +4.047174789999999911e-01,1.396178509999999873e-01 +4.145121019999999934e-01,1.393254060000000127e-01 +4.242448710000000234e-01,1.390510140000000006e-01 +4.340393309999999727e-01,1.387792969999999959e-01 +4.437702399999999825e-01,1.385174130000000059e-01 +4.535648620000000131e-01,1.382588969999999917e-01 +4.632981389999999977e-01,1.379812930000000049e-01 +4.730344559999999920e-01,1.376722260000000086e-01 +4.827665440000000197e-01,1.373293250000000021e-01 +4.925645519999999888e-01,1.369032239999999900e-01 +5.023028920000000008e-01,1.363902439999999938e-01 +5.120425950000000448e-01,1.357575809999999883e-01 +5.218331609999999898e-01,1.349471010000000137e-01 +5.315721820000000042e-01,1.339232350000000016e-01 +5.413690330000000550e-01,1.326216809999999913e-01 +5.511048309999999617e-01,1.309894739999999946e-01 +5.608997999999999484e-01,1.289649240000000086e-01 +5.706356080000000164e-01,1.265499870000000027e-01 +5.804348059999999698e-01,1.237428780000000006e-01 +5.902356920000000340e-01,1.207708339999999936e-01 +5.999774070000000181e-01,1.179296340000000054e-01 +6.097162659999999512e-01,1.153799830000000054e-01 +6.195178220000000513e-01,1.132054229999999995e-01 +6.293136350000000379e-01,1.113664770000000054e-01 +6.390491080000000323e-01,1.098554949999999975e-01 +6.487901520000000088e-01,1.085789520000000064e-01 +6.585841040000000035e-01,1.075206779999999945e-01 +6.683202480000000056e-01,1.066325360000000000e-01 +6.780550400000000533e-01,1.058937580000000045e-01 +6.878518689999999491e-01,1.052606130000000029e-01 +6.976493799999999856e-01,1.047131889999999982e-01 +7.073890720000000076e-01,1.042543650000000016e-01 +7.171880969999999689e-01,1.038456249999999970e-01 +7.269771480000000174e-01,1.034771190000000063e-01 +7.367763360000000317e-01,1.031539320000000037e-01 +7.465158659999999724e-01,1.028565409999999958e-01 +7.562591060000000143e-01,1.025874430000000004e-01 +7.660550910000000213e-01,1.023382790000000042e-01 +7.757890389999999581e-01,1.021019860000000057e-01 +7.855378610000000039e-01,1.018809049999999938e-01 +7.953297900000000364e-01,1.016764230000000019e-01 +8.050806459999999554e-01,1.014658779999999955e-01 +8.148270990000000547e-01,1.012641710000000000e-01 +8.245700030000000513e-01,1.010626349999999979e-01 +8.343708890000000045e-01,1.008704099999999937e-01 +8.441732889999999934e-01,1.006809599999999999e-01 +8.539131869999999624e-01,1.004892230000000025e-01 +8.636505100000000379e-01,1.003004370000000062e-01 +8.733920729999999910e-01,1.000997180000000042e-01 +8.831268650000000386e-01,9.987710399999999433e-02 +8.929182860000000055e-01,9.962898500000000324e-02 +9.027085160000000164e-01,9.933261599999999858e-02 +9.124433079999999530e-01,9.895841900000000579e-02 +9.222325329999999655e-01,9.844254199999999400e-02 +9.320197239999999939e-01,9.768364300000000056e-02 +9.418128319999999887e-01,9.649199999999999444e-02 +9.516023919999999636e-01,9.451079099999999678e-02 +9.613927949999999667e-01,9.113681699999999497e-02 +9.701776519999999460e-01,8.611518599999999635e-02 +9.760513579999999800e-01,8.107874800000000604e-02 +9.804134490000000479e-01,7.604036999999999602e-02 +9.838878039999999769e-01,7.099153499999999450e-02 +9.867927029999999933e-01,6.589832800000000601e-02 +9.892550959999999449e-01,6.084404699999999833e-02 +9.914014070000000123e-01,5.581011799999999884e-02 +9.933599290000000304e-01,5.067069800000000013e-02 +9.951301540000000445e-01,4.556240100000000237e-02 +9.967763039999999464e-01,4.039266300000000226e-02 +9.982294400000000234e-01,3.526127200000000322e-02 +9.992410659999999556e-01,3.024265799999999865e-02 +9.997469610000000451e-01,2.485076799999999878e-02 +9.999364480000000333e-01,1.925150200000000020e-02 +1.000000000000000000e+00,4.994677999999999791e-03 diff --git a/pybamm/input/parameters/lithium_ion/lico2_ocp_Ai2020.csv b/pybamm/input/parameters/lithium_ion/lico2_ocp_Ai2020.csv new file mode 100644 index 0000000000..8a7c457514 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/lico2_ocp_Ai2020.csv @@ -0,0 +1,446 @@ +4.299999999999999933e-01,4.299999999999999822e+00 +4.366397839999999753e-01,4.279907752999999815e+00 +4.379061430000000255e-01,4.276472669000000337e+00 +4.391725020000000201e-01,4.273800937999999938e+00 +4.404388599999999876e-01,4.271129206000000345e+00 +4.417052189999999823e-01,4.268648312999999916e+00 +4.429715779999999770e-01,4.266167419000000294e+00 +4.442379370000000272e-01,4.263686525999999866e+00 +4.455042960000000218e-01,4.261205633000000326e+00 +4.467706550000000165e-01,4.258724738999999815e+00 +4.480370140000000112e-01,4.256243846000000275e+00 +4.493033730000000059e-01,4.253762951999999764e+00 +4.505697320000000006e-01,4.251282059000000224e+00 +4.518360900000000235e-01,4.248992002999999684e+00 +4.531024490000000182e-01,4.246511110000000144e+00 +4.543688080000000129e-01,4.244221053999999604e+00 +4.556351670000000076e-01,4.241740159999999982e+00 +4.569015260000000023e-01,4.239259267000000442e+00 +4.581678849999999970e-01,4.236969210999999902e+00 +4.594342439999999916e-01,4.234679156000000333e+00 +4.607006029999999863e-01,4.232198261999999822e+00 +4.619669610000000093e-01,4.229717369000000282e+00 +4.632333200000000040e-01,4.227236474999999771e+00 +4.644996789999999987e-01,4.225137258000000173e+00 +4.657660379999999933e-01,4.222656363999999662e+00 +4.670323969999999880e-01,4.220366309000000093e+00 +4.682987559999999827e-01,4.217885414999999583e+00 +4.695651149999999774e-01,4.215595360000000014e+00 +4.708314740000000276e-01,4.213305304000000362e+00 +4.720978330000000223e-01,4.211015248999999905e+00 +4.733641909999999897e-01,4.208534355000000282e+00 +4.746305499999999844e-01,4.206244299999999825e+00 +4.758969089999999791e-01,4.203954244000000173e+00 +4.771632679999999738e-01,4.201664188999999716e+00 +4.784296270000000240e-01,4.199374133000000064e+00 +4.796959860000000186e-01,4.197084077999999607e+00 +4.809623450000000133e-01,4.194794021999999956e+00 +4.822287040000000080e-01,4.192503967000000387e+00 +4.834950630000000027e-01,4.190213910999999847e+00 +4.847614210000000257e-01,4.187923856000000278e+00 +4.860277800000000203e-01,4.185824637999999709e+00 +4.872941390000000150e-01,4.183534582000000057e+00 +4.885604980000000097e-01,4.181053688999999629e+00 +4.898268570000000044e-01,4.178954470999999948e+00 +4.910932159999999991e-01,4.176855254000000350e+00 +4.923595749999999938e-01,4.174565197999999810e+00 +4.936259339999999884e-01,4.172275143000000241e+00 +4.948922920000000114e-01,4.169985086999999702e+00 +4.961586510000000061e-01,4.167885870000000104e+00 +4.974250100000000008e-01,4.165786652000000423e+00 +4.986913689999999955e-01,4.163687434999999937e+00 +4.999577279999999901e-01,4.161588217000000256e+00 +5.012240869999999848e-01,4.159298160999999716e+00 +5.024904460000000350e-01,4.157389782000000089e+00 +5.037568049999999742e-01,4.155290564000000408e+00 +5.050231630000000527e-01,4.153191346999999922e+00 +5.062895219999999918e-01,4.151092129000000241e+00 +5.075558810000000420e-01,4.148992911999999755e+00 +5.088222399999999812e-01,4.146893694000000075e+00 +5.100885990000000314e-01,4.144794476000000394e+00 +5.113549579999999706e-01,4.142504420999999937e+00 +5.126213170000000208e-01,4.140405203000000256e+00 +5.138876759999999599e-01,4.138305985999999770e+00 +5.151540350000000101e-01,4.136206768000000089e+00 +5.164203929999999776e-01,4.134107550999999603e+00 +5.176867520000000278e-01,4.131817494999999951e+00 +5.189531109999999670e-01,4.129718278000000353e+00 +5.202194700000000172e-01,4.127619059999999784e+00 +5.214858289999999563e-01,4.125519842000000104e+00 +5.227521880000000065e-01,4.123229786999999646e+00 +5.240185469999999457e-01,4.121130568999999966e+00 +5.252849059999999959e-01,4.119222190000000339e+00 +5.265512639999999633e-01,4.116932133999999799e+00 +5.278176220000000418e-01,4.115023755000000172e+00 +5.290839800000000093e-01,4.112733698999999632e+00 +5.303503379999999767e-01,4.110634480999999951e+00 +5.316166970000000269e-01,4.108726102000000324e+00 +5.328830559999999661e-01,4.106817721999999726e+00 +5.341494150000000163e-01,4.104718505000000128e+00 +5.354157739999999555e-01,4.102619286999999559e+00 +5.366821330000000057e-01,4.100901744999999821e+00 +5.379484919999999448e-01,4.098611690000000252e+00 +5.392148509999999950e-01,4.096703309999999654e+00 +5.404812100000000452e-01,4.094985768999999998e+00 +5.417475680000000127e-01,4.092886551000000317e+00 +5.430139269999999518e-01,4.090978170999999719e+00 +5.442802860000000020e-01,4.089069792000000092e+00 +5.455466450000000522e-01,4.087352250000000353e+00 +5.468130039999999914e-01,4.085443870999999838e+00 +5.480793630000000416e-01,4.083535491000000128e+00 +5.493457219999999808e-01,4.081817949000000390e+00 +5.506120810000000310e-01,4.079909569999999874e+00 +5.518784389999999984e-01,4.078192028000000136e+00 +5.531447980000000486e-01,4.076474486000000397e+00 +5.544111569999999878e-01,4.074566106999999882e+00 +5.556775160000000380e-01,4.072848565000000143e+00 +5.569438749999999771e-01,4.071131023999999599e+00 +5.582102340000000273e-01,4.069413481999999860e+00 +5.594765929999999665e-01,4.067695940000000121e+00 +5.607429520000000167e-01,4.065978398999999577e+00 +5.620093109999999559e-01,4.064451694999999809e+00 +5.632756690000000344e-01,4.062734153000000070e+00 +5.645420279999999735e-01,4.061207450000000385e+00 +5.658083870000000237e-01,4.059299069999999787e+00 +5.670747459999999629e-01,4.057772366000000019e+00 +5.683411050000000131e-01,4.056054825000000363e+00 +5.696074639999999523e-01,4.054528120999999707e+00 +5.708738230000000025e-01,4.052810578999999969e+00 +5.721401820000000527e-01,4.051283876000000284e+00 +5.734065409999999918e-01,4.049566333999999657e+00 +5.746728989999999593e-01,4.048039629999999889e+00 +5.759392580000000095e-01,4.046322089000000233e+00 +5.772056169999999486e-01,4.044795384999999577e+00 +5.784719759999999988e-01,4.043268680999999809e+00 +5.797383350000000490e-01,4.041551140000000153e+00 +5.810046939999999882e-01,4.040024436000000385e+00 +5.822710530000000384e-01,4.038306893999999758e+00 +5.835374119999999776e-01,4.036971029000000044e+00 +5.848037699999999450e-01,4.035253487000000305e+00 +5.860701289999999952e-01,4.033726782999999649e+00 +5.873364880000000454e-01,4.032200079999999964e+00 +5.886028469999999846e-01,4.030673376000000196e+00 +5.898692060000000348e-01,4.029146672000000429e+00 +5.911355649999999740e-01,4.027619967999999773e+00 +5.924019240000000242e-01,4.026093265000000088e+00 +5.936682829999999633e-01,4.024566561000000320e+00 +5.949346420000000135e-01,4.023039856999999664e+00 +5.962009999999999810e-01,4.021703991999999950e+00 +5.974673590000000312e-01,4.020177288000000182e+00 +5.987337179999999703e-01,4.018841422000000385e+00 +6.000000770000000205e-01,4.017314718999999812e+00 +6.012664359999999597e-01,4.015788015000000044e+00 +6.025327950000000099e-01,4.014261311000000276e+00 +6.037991539999999491e-01,4.012925444999999591e+00 +6.050655129999999993e-01,4.011589579999999877e+00 +6.063318720000000495e-01,4.010253714000000080e+00 +6.075982300000000169e-01,4.008727010000000313e+00 +6.088645889999999561e-01,4.007391144999999710e+00 +6.101309480000000063e-01,4.006055278999999913e+00 +6.113973069999999455e-01,4.004719413000000117e+00 +6.126636659999999956e-01,4.003383547000000320e+00 +6.139300250000000458e-01,4.001856843999999747e+00 +6.151963839999999850e-01,4.000711815999999921e+00 +6.164627430000000352e-01,3.999375950000000124e+00 +6.177291010000000027e-01,3.997849246999999995e+00 +6.189954600000000529e-01,3.996704219000000169e+00 +6.202618189999999920e-01,3.995368352999999928e+00 +6.215281780000000422e-01,3.994032487000000131e+00 +6.227945369999999814e-01,3.992887459999999944e+00 +6.240608960000000316e-01,3.991551594000000147e+00 +6.253272549999999708e-01,3.990215727999999906e+00 +6.265936140000000210e-01,3.989070700000000080e+00 +6.278599729999999601e-01,3.987734834999999922e+00 +6.291263310000000386e-01,3.986398969000000125e+00 +6.303926899999999778e-01,3.985253940999999855e+00 +6.316590490000000280e-01,3.984108913000000030e+00 +6.329254079999999671e-01,3.982773047999999871e+00 +6.341917670000000173e-01,3.981628020000000046e+00 +6.354581259999999565e-01,3.980292153999999805e+00 +6.367244850000000067e-01,3.979147125999999979e+00 +6.379908439999999459e-01,3.978192937000000207e+00 +6.392572020000000244e-01,3.976857070999999966e+00 +6.405235609999999635e-01,3.975712043000000140e+00 +6.417899200000000137e-01,3.974567014999999870e+00 +6.430562789999999529e-01,3.973421988000000127e+00 +6.443226380000000031e-01,3.972276959999999857e+00 +6.455889970000000533e-01,3.970941094000000060e+00 +6.468553559999999925e-01,3.969986904000000205e+00 +6.481217150000000427e-01,3.968841877000000018e+00 +6.493880739999999818e-01,3.967696849000000192e+00 +6.506544319999999493e-01,3.966742658999999893e+00 +6.519207909999999995e-01,3.965597631000000067e+00 +6.531871500000000497e-01,3.964452602999999797e+00 +6.544535089999999888e-01,3.963498414000000025e+00 +6.557198680000000390e-01,3.962353386000000199e+00 +6.569862269999999782e-01,3.961208357999999929e+00 +6.582525860000000284e-01,3.960254168000000075e+00 +6.595189449999999676e-01,3.959109140999999887e+00 +6.607853040000000178e-01,3.958154951000000032e+00 +6.620516619999999852e-01,3.957200761000000178e+00 +6.633180210000000354e-01,3.956055732999999908e+00 +6.645843799999999746e-01,3.955101543000000053e+00 +6.658507390000000248e-01,3.954147353999999837e+00 +6.671170979999999640e-01,3.953002326000000011e+00 +6.683834570000000141e-01,3.952048136000000156e+00 +6.696498159999999533e-01,3.951284783999999828e+00 +6.709161750000000035e-01,3.950139756000000002e+00 +6.721825329999999710e-01,3.949185566999999786e+00 +6.734488920000000212e-01,3.948231376999999931e+00 +6.747152509999999603e-01,3.947277187000000076e+00 +6.759816100000000105e-01,3.946513835000000192e+00 +6.772479689999999497e-01,3.945368806999999922e+00 +6.785143279999999999e-01,3.944605456000000121e+00 +6.797806870000000501e-01,3.943651265999999822e+00 +6.810470459999999893e-01,3.942697075999999967e+00 +6.823134050000000395e-01,3.941933724000000083e+00 +6.835797630000000069e-01,3.940979533999999784e+00 +6.848461219999999461e-01,3.940025343999999929e+00 +6.861124809999999963e-01,3.939261993000000128e+00 +6.873788400000000465e-01,3.938307802999999829e+00 +6.886451989999999856e-01,3.937544450999999945e+00 +6.899115679999999751e-01,3.936590261000000091e+00 +6.911779270000000253e-01,3.935826909000000207e+00 +6.924442859999999644e-01,3.934872719999999990e+00 +6.937106450000000146e-01,3.934109368000000106e+00 +6.949770039999999538e-01,3.933346015999999779e+00 +6.962433630000000040e-01,3.932582663999999895e+00 +6.975097220000000542e-01,3.931819312000000011e+00 +6.987760809999999934e-01,3.930865122000000156e+00 +7.000424389999999608e-01,3.930292607999999799e+00 +7.013087980000000110e-01,3.929338419000000027e+00 +7.025751569999999502e-01,3.928575067000000143e+00 +7.038415160000000004e-01,3.927811714999999815e+00 +7.051078750000000506e-01,3.927048362999999931e+00 +7.063742339999999897e-01,3.926285011000000047e+00 +7.076405930000000399e-01,3.925521659000000163e+00 +7.089069519999999791e-01,3.924949145999999889e+00 +7.101733099999999466e-01,3.924185794000000005e+00 +7.114396689999999968e-01,3.923613280000000092e+00 +7.127060280000000470e-01,3.922849928000000208e+00 +7.139723869999999861e-01,3.922086575999999880e+00 +7.152387460000000363e-01,3.921323223999999996e+00 +7.165051049999999755e-01,3.920750710000000083e+00 +7.177714640000000257e-01,3.919987358999999838e+00 +7.190378229999999649e-01,3.919224006999999954e+00 +7.203041820000000151e-01,3.918651493000000041e+00 +7.215705399999999825e-01,3.918078979000000128e+00 +7.228368990000000327e-01,3.917506465000000215e+00 +7.241032579999999719e-01,3.916933950999999858e+00 +7.253696170000000221e-01,3.916361436999999945e+00 +7.266359759999999612e-01,3.915788923000000032e+00 +7.279023350000000114e-01,3.915025571999999787e+00 +7.291686939999999506e-01,3.914643895999999845e+00 +7.304350530000000008e-01,3.913880543999999961e+00 +7.317014109999999683e-01,3.913308030000000048e+00 +7.329677700000000184e-01,3.912735516000000136e+00 +7.342341289999999576e-01,3.912163001999999778e+00 +7.355004880000000078e-01,3.911781325999999837e+00 +7.367668469999999470e-01,3.911208811999999924e+00 +7.380332059999999972e-01,3.910636298000000011e+00 +7.392995650000000474e-01,3.910063785000000181e+00 +7.405659239999999865e-01,3.909491270999999823e+00 +7.418322830000000367e-01,3.908918756999999911e+00 +7.430986410000000042e-01,3.908537080999999969e+00 +7.443650000000000544e-01,3.908155405000000027e+00 +7.456313589999999936e-01,3.907582891000000114e+00 +7.468977180000000438e-01,3.907010377000000201e+00 +7.481640769999999829e-01,3.906628700999999815e+00 +7.494304360000000331e-01,3.906056186999999902e+00 +7.506967949999999723e-01,3.905865348999999931e+00 +7.519631540000000225e-01,3.905292836000000101e+00 +7.532295129999999617e-01,3.904911160000000159e+00 +7.544958710000000401e-01,3.904529484000000217e+00 +7.557622299999999793e-01,3.903956969999999860e+00 +7.570285890000000295e-01,3.903575293999999918e+00 +7.582949479999999687e-01,3.903193617999999976e+00 +7.595613070000000189e-01,3.902811942000000034e+00 +7.608276659999999580e-01,3.902621104000000063e+00 +7.620940250000000082e-01,3.902239428000000121e+00 +7.633603839999999474e-01,3.901857752000000179e+00 +7.646267420000000259e-01,3.901476075999999793e+00 +7.658931009999999651e-01,3.901094399999999851e+00 +7.671594600000000153e-01,3.900903561999999880e+00 +7.684258189999999544e-01,3.900521887000000021e+00 +7.696921780000000046e-01,3.900140211000000079e+00 +7.709585370000000548e-01,3.899949373000000108e+00 +7.722248959999999940e-01,3.899758535000000137e+00 +7.734912550000000442e-01,3.899376859000000195e+00 +7.747576130000000116e-01,3.899186020999999780e+00 +7.760239719999999508e-01,3.898995182999999809e+00 +7.772903310000000010e-01,3.898613506999999867e+00 +7.785566900000000512e-01,3.898422668999999896e+00 +7.798230489999999904e-01,3.898040992999999954e+00 +7.810894080000000406e-01,3.897850154999999983e+00 +7.823557669999999797e-01,3.897659317000000012e+00 +7.836221260000000299e-01,3.897468479000000041e+00 +7.848884849999999691e-01,3.897277641000000070e+00 +7.861548430000000476e-01,3.897086803000000099e+00 +7.874212019999999868e-01,3.896705127000000157e+00 +7.886875610000000369e-01,3.896705127000000157e+00 +7.899539199999999761e-01,3.896514289000000186e+00 +7.912202790000000263e-01,3.896323451000000215e+00 +7.924866379999999655e-01,3.896323451000000215e+00 +7.937529970000000157e-01,3.896132612999999800e+00 +7.950193559999999549e-01,3.895750937999999941e+00 +7.962857150000000050e-01,3.895750937999999941e+00 +7.975520729999999725e-01,3.895560099999999970e+00 +7.988184320000000227e-01,3.895369261999999999e+00 +8.000847909999999619e-01,3.895178424000000028e+00 +8.013511500000000121e-01,3.894987586000000057e+00 +8.026175089999999512e-01,3.894796748000000086e+00 +8.038838680000000014e-01,3.894605910000000115e+00 +8.051502270000000516e-01,3.894605910000000115e+00 +8.064165859999999908e-01,3.894415072000000144e+00 +8.076829439999999583e-01,3.894224234000000173e+00 +8.089493030000000084e-01,3.894033396000000202e+00 +8.102156619999999476e-01,3.894033396000000202e+00 +8.114820209999999978e-01,3.893842557999999787e+00 +8.127483800000000480e-01,3.893651719999999816e+00 +8.140147389999999872e-01,3.893651719999999816e+00 +8.152810980000000374e-01,3.893460881999999845e+00 +8.165474569999999765e-01,3.893270043999999874e+00 +8.178138160000000267e-01,3.893270043999999874e+00 +8.190801739999999942e-01,3.893079205999999903e+00 +8.203465330000000444e-01,3.892888367999999932e+00 +8.216128919999999836e-01,3.892697529999999961e+00 +8.228792510000000338e-01,3.892697529999999961e+00 +8.241456099999999729e-01,3.892506691999999990e+00 +8.254119690000000231e-01,3.892315854000000019e+00 +8.266783279999999623e-01,3.892125016000000048e+00 +8.279446870000000125e-01,3.891934178000000077e+00 +8.292110449999999799e-01,3.891934178000000077e+00 +8.304774040000000301e-01,3.891743340000000106e+00 +8.317437629999999693e-01,3.891552502000000135e+00 +8.330101220000000195e-01,3.891361664000000165e+00 +8.342764809999999587e-01,3.891170826000000194e+00 +8.355428400000000089e-01,3.890979988999999861e+00 +8.368091989999999480e-01,3.890979988999999861e+00 +8.380755579999999982e-01,3.890789150999999890e+00 +8.393419170000000484e-01,3.890598312999999919e+00 +8.406082750000000159e-01,3.890407474999999948e+00 +8.418746339999999551e-01,3.890216636999999977e+00 +8.431409930000000053e-01,3.890025799000000006e+00 +8.444073520000000554e-01,3.889834961000000035e+00 +8.456737109999999946e-01,3.889834961000000035e+00 +8.469400700000000448e-01,3.889644123000000064e+00 +8.482064289999999840e-01,3.889262447000000122e+00 +8.494727880000000342e-01,3.889071609000000151e+00 +8.507391460000000016e-01,3.888880771000000180e+00 +8.520055050000000518e-01,3.888689933000000210e+00 +8.532718639999999910e-01,3.888499094999999794e+00 +8.545382230000000412e-01,3.888308256999999823e+00 +8.558045819999999804e-01,3.888117418999999853e+00 +8.570709410000000306e-01,3.887735742999999911e+00 +8.583372999999999697e-01,3.887544904999999940e+00 +8.596036590000000199e-01,3.887354066999999969e+00 +8.608700179999999591e-01,3.887163228999999998e+00 +8.621363760000000376e-01,3.886972391000000027e+00 +8.634027349999999768e-01,3.886590715000000085e+00 +8.646690940000000269e-01,3.886209039999999781e+00 +8.659354529999999661e-01,3.886018201999999810e+00 +8.672018120000000163e-01,3.885827363999999839e+00 +8.684681709999999555e-01,3.885445687999999897e+00 +8.697345300000000057e-01,3.885064011999999956e+00 +8.710008889999999449e-01,3.884873173999999985e+00 +8.722672470000000233e-01,3.884491498000000043e+00 +8.735336059999999625e-01,3.884300660000000072e+00 +8.747999650000000127e-01,3.883918984000000130e+00 +8.760663239999999519e-01,3.883728146000000159e+00 +8.773326830000000021e-01,3.883346470000000217e+00 +8.785990420000000523e-01,3.882773955999999860e+00 +8.798654009999999914e-01,3.882583117999999889e+00 +8.811317600000000416e-01,3.882201441999999947e+00 +8.823981189999999808e-01,3.881819766000000005e+00 +8.836644769999999482e-01,3.881438090000000063e+00 +8.849308359999999984e-01,3.881056415000000204e+00 +8.861971950000000486e-01,3.880674738999999818e+00 +8.874635539999999878e-01,3.880102224999999905e+00 +8.887299130000000380e-01,3.879529710999999992e+00 +8.899962719999999772e-01,3.879148035000000050e+00 +8.912626310000000274e-01,3.878575521000000137e+00 +8.925289899999999665e-01,3.878193845000000195e+00 +8.937953490000000167e-01,3.877812168999999809e+00 +8.950617069999999842e-01,3.877239654999999896e+00 +8.963280660000000344e-01,3.876667140999999983e+00 +8.975944249999999736e-01,3.876094628000000153e+00 +8.988607840000000238e-01,3.875522113999999796e+00 +9.001271429999999629e-01,3.874949599999999883e+00 +9.013935020000000131e-01,3.874377085999999970e+00 +9.026598609999999523e-01,3.873613734000000086e+00 +9.039262200000000025e-01,3.873041220000000173e+00 +9.051925790000000527e-01,3.872468705999999816e+00 +9.064589370000000201e-01,3.871705353999999932e+00 +9.077252959999999593e-01,3.871132841000000102e+00 +9.089916550000000095e-01,3.870369489000000218e+00 +9.102580139999999487e-01,3.869415298999999919e+00 +9.115243729999999989e-01,3.868842785000000006e+00 +9.127907320000000491e-01,3.868079433000000122e+00 +9.140570909999999882e-01,3.867125242999999823e+00 +9.153234489999999557e-01,3.866171054000000051e+00 +9.165898080000000059e-01,3.865407702000000167e+00 +9.178561669999999451e-01,3.864453511999999868e+00 +9.191225259999999952e-01,3.863499322000000014e+00 +9.203888850000000454e-01,3.862545132000000159e+00 +9.216552439999999846e-01,3.861400104999999972e+00 +9.229216030000000348e-01,3.860255077000000146e+00 +9.241879619999999740e-01,3.859300886999999847e+00 +9.254543200000000525e-01,3.858155859000000021e+00 +9.267206789999999916e-01,3.856819993999999863e+00 +9.279870380000000418e-01,3.855674966000000037e+00 +9.292533969999999810e-01,3.854148261999999825e+00 +9.305197560000000312e-01,3.853003233999999999e+00 +9.317861149999999704e-01,3.851476530999999870e+00 +9.330524740000000206e-01,3.849949827000000102e+00 +9.343188329999999597e-01,3.848423122999999890e+00 +9.355851920000000099e-01,3.846896420000000205e+00 +9.368515499999999774e-01,3.844988040000000051e+00 +9.381179090000000276e-01,3.843270497999999868e+00 +9.393842679999999667e-01,3.841362118999999797e+00 +9.406506270000000169e-01,3.839262901000000117e+00 +9.419169859999999561e-01,3.837163684000000075e+00 +9.431833450000000063e-01,3.835064465999999950e+00 +9.444497039999999455e-01,3.832583572999999966e+00 +9.457160629999999957e-01,3.830102678999999899e+00 +9.469824209999999631e-01,3.827430947999999944e+00 +9.482487800000000133e-01,3.824759215999999906e+00 +9.495151389999999525e-01,3.821896646999999980e+00 +9.507814980000000027e-01,3.818843239000000001e+00 +9.520478570000000529e-01,3.815598994000000133e+00 +9.533142159999999921e-01,3.812163910999999850e+00 +9.545805750000000423e-01,3.808537988999999957e+00 +9.558469339999999814e-01,3.804912068000000147e+00 +9.571132930000000316e-01,3.800904470999999951e+00 +9.583796509999999991e-01,3.796896874000000199e+00 +9.596460100000000493e-01,3.792698439000000032e+00 +9.609123689999999884e-01,3.788309165999999895e+00 +9.621787280000000386e-01,3.783919893000000201e+00 +9.634450869999999778e-01,3.779148944000000121e+00 +9.647114460000000280e-01,3.774568831999999929e+00 +9.659778049999999672e-01,3.769607044999999879e+00 +9.672441640000000174e-01,3.765026934000000214e+00 +9.685105229999999565e-01,3.760065147000000163e+00 +9.697768810000000350e-01,3.755103360000000112e+00 +9.710432399999999742e-01,3.750141573000000061e+00 +9.723095990000000244e-01,3.745179786000000011e+00 +9.735759579999999636e-01,3.740217998999999960e+00 +9.748423170000000137e-01,3.735065375000000021e+00 +9.761086759999999529e-01,3.729912749999999999e+00 +9.773750350000000031e-01,3.724760124999999977e+00 +9.786413940000000533e-01,3.719416661999999985e+00 +9.799077520000000208e-01,3.713882361000000021e+00 +9.811741109999999599e-01,3.708157222000000086e+00 +9.824404700000000101e-01,3.702241245000000180e+00 +9.837068289999999493e-01,3.696134430999999942e+00 +9.849731879999999995e-01,3.689455102000000153e+00 +9.862395470000000497e-01,3.682394096999999977e+00 +9.875059059999999889e-01,3.674760578999999971e+00 +9.887722650000000391e-01,3.666363709000000082e+00 +9.900386230000000065e-01,3.656630972999999951e+00 +9.913049819999999457e-01,3.645562371000000024e+00 +9.925713409999999959e-01,3.632203714000000083e+00 +9.938377000000000461e-01,3.615219134999999806e+00 +9.951040589999999852e-01,3.591936904000000208e+00 +9.963704180000000354e-01,3.557204394999999852e+00 +9.976367769999999746e-01,3.501098035000000053e+00 +9.989031360000000248e-01,3.408923300000000101e+00 diff --git a/pybamm/input/parameters/lithium_ion/measured_graphite_diffusivity_Ecker2015.csv b/pybamm/input/parameters/lithium_ion/measured_graphite_diffusivity_Ecker2015.csv new file mode 100644 index 0000000000..f76d1cecc7 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/measured_graphite_diffusivity_Ecker2015.csv @@ -0,0 +1,23 @@ +4.291659469592760262e-02,2.531898360570985438e-13 +8.025337997334400231e-02,4.438292394020732198e-14 +1.201495693104105977e-01,3.194742634305544604e-14 +1.579612071829530062e-01,2.607796299467475510e-14 +1.957522738239375892e-01,2.255908580891848065e-14 +2.357650334731652975e-01,1.168650222421729978e-14 +2.714441203408818892e-01,1.238692732813089111e-14 +3.100288936661386163e-01,2.029195448741254678e-14 +3.484165260222996108e-01,3.260471640647865042e-15 +3.866704453733347258e-01,7.640156635519089703e-16 +4.264157790123110914e-01,8.417747371928056363e-16 +4.641862744217375991e-01,7.717093525037831689e-16 +5.018779134435262801e-01,8.837921553351042829e-16 +5.412118224513462472e-01,3.109171322297572131e-15 +5.766749113877058797e-01,6.062184667385398012e-15 +6.148036890800978593e-01,3.595937210129949532e-14 +6.545815938357071317e-01,2.032309380667846681e-15 +7.681399348426813933e-01,7.802664217099549249e-16 +8.089429726375878538e-01,7.728942922045022093e-16 +8.823034129113143109e-01,9.658296743214139775e-16 +9.220864604748132409e-01,9.566999594213239365e-16 +9.607500901877076283e-01,1.254577638361363333e-15 +9.976360226401491671e-01,1.395684713792463091e-14 diff --git a/pybamm/input/parameters/lithium_ion/measured_nco_diffusivity_Ecker2015.csv b/pybamm/input/parameters/lithium_ion/measured_nco_diffusivity_Ecker2015.csv new file mode 100644 index 0000000000..0e12cce8ee --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/measured_nco_diffusivity_Ecker2015.csv @@ -0,0 +1,15 @@ +1.394321766561512910e-01,1.825654028815251074e-13 +2.000000000000000111e-01,3.329858559514641948e-13 +2.618296529968452968e-01,3.080122853252537414e-13 +3.223974763406939892e-01,2.633392029382157728e-13 +3.867507886435330167e-01,1.981196994552170981e-13 +4.460567823343847826e-01,1.418878868334243052e-13 +5.078864353312302349e-01,7.201182417750914051e-14 +5.684542586750789273e-01,2.857708698828691482e-14 +6.315457413249212504e-01,4.541608403537004149e-15 +6.933753943217664251e-01,5.479444754774098165e-14 +7.526813880126184131e-01,2.029688665697241882e-13 +8.157728706624605142e-01,1.588286508400881632e-13 +8.750788643533122801e-01,1.344609203929170519e-13 +9.406940063091483450e-01,2.054505327203948374e-14 +1.000000000000000000e+00,5.446292980729586538e-15 diff --git a/pybamm/input/parameters/lithium_ion/nca_ocp_Kim2011_data.csv b/pybamm/input/parameters/lithium_ion/nca_ocp_Kim2011_data.csv new file mode 100644 index 0000000000..dd373a4e59 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/nca_ocp_Kim2011_data.csv @@ -0,0 +1,75 @@ +3.702144282741329784e-01,4.210440859985936868e+00 +3.757743637822902882e-01,4.198214873372019262e+00 +3.836904770360268779e-01,4.182142025684673747e+00 +3.918959828337426066e-01,4.165163132847251148e+00 +4.010692214022635871e-01,4.149604765177982379e+00 +4.068618073657386813e-01,4.138286599370601948e+00 +4.116896199858421923e-01,4.129799619141419242e+00 +4.194137255876831949e-01,4.115653556008544989e+00 +4.266554445178383226e-01,4.102923085664770042e+00 +4.329304171529991807e-01,4.090189327068291192e+00 +4.396907358872798044e-01,4.080291686429065479e+00 +4.454843083265662140e-01,4.070390757537135862e+00 +4.532103868800296809e-01,4.059079168235163237e+00 +4.585215726476301046e-01,4.050593832132332039e+00 +4.628660121202364808e-01,4.042105207776796938e+00 +4.710764502970081757e-01,4.032212499516626636e+00 +4.763876360646087105e-01,4.023727163413795438e+00 +4.836313279463863024e-01,4.013831166900922121e+00 +4.894249003856726010e-01,4.003930238008992504e+00 +4.981187117099414863e-01,3.994039173875174153e+00 +5.077763099017708059e-01,3.979899687247709039e+00 +5.164711077018507845e-01,3.971425860029341948e+00 +5.280592390562347527e-01,3.953041239160932641e+00 +5.377168372480639613e-01,3.938901752533467082e+00 +5.493089145056928579e-01,3.926186079326860590e+00 +5.565516199116592455e-01,3.914872845898536013e+00 +5.671749779226714638e-01,3.899319410608324876e+00 +5.768345490661231922e-01,3.888014397811760059e+00 +5.869745339296382758e-01,3.872459318395196082e+00 +5.961487589739705717e-01,3.858318187641378572e+00 +6.087065960507822560e-01,3.844188565772025168e+00 +6.159493014567486435e-01,3.832875332343701036e+00 +6.246431127810174733e-01,3.822984268209883130e+00 +6.352684437436521003e-01,3.810265306750571845e+00 +6.463781343295951221e-01,3.798965226333064216e+00 +6.603860908488979886e-01,3.784840536842767111e+00 +6.763275399581892833e-01,3.770722423857878258e+00 +6.917856159199835542e-01,3.756602666746637009e+00 +7.038630392767318833e-01,3.746723111497284098e+00 +7.246372333851824887e-01,3.731204202860463948e+00 +7.391305360036051209e-01,3.719915631327419980e+00 +7.531414519503416560e-01,3.710042652583474876e+00 +7.676347545687642882e-01,3.698754081050430909e+00 +7.797121779255123952e-01,3.688874525801077553e+00 +7.917886148064495755e-01,3.677577733636273827e+00 +8.043484248348837795e-01,3.666282585597821608e+00 +8.144923556016439026e-01,3.656396453843060002e+00 +8.260854193350838370e-01,3.645098017551903880e+00 +8.357449904785355654e-01,3.633793004755339950e+00 +8.463732808686038611e-01,3.625325754042380666e+00 +8.560318655362443296e-01,3.612603504330365922e+00 +8.652100364838214430e-01,3.604131321238350782e+00 +8.739028613322789019e-01,3.592823020189082506e+00 +8.840477785748505068e-01,3.584354125349772158e+00 +8.927425763749304854e-01,3.575880298131404622e+00 +9.024031339941932517e-01,3.565992522250290619e+00 +9.125490377125760055e-01,3.558940864326430198e+00 +9.222105818076500316e-01,3.550470325360767454e+00 +9.338056184927123748e-01,3.542006362900512517e+00 +9.482959616837012273e-01,3.526466080621116994e+00 +9.579515869239080272e-01,3.509492120162750251e+00 +9.651923193782520061e-01,3.495344412903524933e+00 +9.709740541078040188e-01,3.468436641026187761e+00 +9.743448419547372508e-01,3.450024070009793942e+00 +9.767449376034319508e-01,3.425939263078893848e+00 +9.805892338397508290e-01,3.393355967034346055e+00 +9.820196237660175909e-01,3.365016161104390058e+00 +9.834510001680956126e-01,3.338093592089884432e+00 +9.848843495217960431e-01,3.314005496906280435e+00 +9.858323527763771521e-01,3.287081283765422857e+00 +9.872587967993989855e-01,3.253072530173664489e+00 +9.896421223593031558e-01,3.204894695680104100e+00 +9.905703960976598443e-01,3.149625744230234226e+00 +9.915055751666947970e-01,3.104277451188519166e+00 +9.933828386354436324e-01,3.023501523513242972e+00 diff --git a/pybamm/input/parameters/lithium_ion/nco_ocp_Ecker2015.csv b/pybamm/input/parameters/lithium_ion/nco_ocp_Ecker2015.csv new file mode 100644 index 0000000000..1acc74d2d5 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/nco_ocp_Ecker2015.csv @@ -0,0 +1,43 @@ +1.066078485433399892e-03,4.584263211444842945e+00 +4.127377998345759663e-02,4.542437342855613736e+00 +6.539840088227200088e-02,4.529650072116670145e+00 +8.722543883834220357e-02,4.523324753404194709e+00 +1.115415249823853011e-01,4.498932358000800491e+00 +1.354746806359710953e-01,4.469858708793820412e+00 +1.594078362895569867e-01,4.429538485743097276e+00 +1.817454482329037002e-01,4.389207099839923742e+00 +2.056786038864892863e-01,4.342138932482952463e+00 +2.280162158298359998e-01,4.299558231811030140e+00 +2.511515996283024132e-01,4.254733797796583339e+00 +2.750847552818880271e-01,4.216662889514608992e+00 +2.982201390803542740e-01,4.178586399806407670e+00 +3.221532947339402764e-01,4.147263435830680578e+00 +3.452886785324063013e-01,4.111436260891228045e+00 +3.692218341859923036e-01,4.082362611684248854e+00 +3.939527616946973954e-01,4.055543858672243651e+00 +4.146948299278049865e-01,4.030946513297861244e+00 +4.402235292916298892e-01,4.006382656480829141e+00 +4.617633693798570138e-01,3.984040207301420722e+00 +4.864942968885623831e-01,3.968468028133159908e+00 +5.088319088319090966e-01,3.952879104686223055e+00 +5.327650644854948769e-01,3.941799973629234177e+00 +5.566982201390806573e-01,3.923972898265998932e+00 +5.782380602273078374e-01,3.919624967236580826e+00 +5.981823566052959507e-01,3.913016558585963978e+00 +6.484419834778261116e-01,3.911118873669401808e+00 +6.723751391314118919e-01,3.911286316456156875e+00 +6.971060666401172057e-01,3.897963452056644851e+00 +7.194436785834639192e-01,3.882374528609707998e+00 +7.433768342370494775e-01,3.860048823708975174e+00 +7.649166743252768796e-01,3.817462541610827209e+00 +7.880520581237431266e-01,3.788383310977622376e+00 +8.127829856324482183e-01,3.759315243196867939e+00 +8.351205975757949318e-01,3.732479745906187141e+00 +8.590537532293809342e-01,3.707904726236704640e+00 +8.821891370278471811e-01,3.681074810372248596e+00 +9.053245208263132060e-01,3.649746264970294973e+00 +9.300554483350188528e-01,3.611680938114545381e+00 +9.515952884232455888e-01,3.578091915091393016e+00 +9.683484973807555685e-01,3.557965292123382195e+00 +9.827083907729071699e-01,3.542320554414193357e+00 +9.994615997304171495e-01,3.519944616677433302e+00 diff --git a/pybamm/input/parameters/lithium_ion/parameters.ipynb b/pybamm/input/parameters/lithium_ion/parameters.ipynb deleted file mode 100644 index d6740df7ba..0000000000 --- a/pybamm/input/parameters/lithium_ion/parameters.ipynb +++ /dev/null @@ -1,110 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'/Users/vsulzer/Documents/Energy_storage/PyBaMM'" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pybamm.ABSOLUTE_PATH" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], - "source": [ - "import pybamm\n", - "import os\n", - "import inspect\n", - "from pprint import pformat\n" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "all_parameter_sets = [\n", - " x\n", - " for x in dir(pybamm.parameter_sets)\n", - " if not x.startswith(\"__\") and x not in [\"Sulzer2019\"]\n", - "]\n", - "\n", - "for name in all_parameter_sets:\n", - " parameter_values = dict(pybamm.ParameterValues(name))\n", - " filename = pybamm.ABSOLUTE_PATH + f\"/pybamm/input/parameters/lithium_ion/{name}.py\"\n", - "\n", - " output = \"\"\n", - " for k,v in parameter_values.items():\n", - " if callable(v):\n", - " parameter_values[k] = v.__name__\n", - " output += inspect.getsource(v) + \"\\n\"\n", - "\n", - " # Format parameter dictionary\n", - " param_dict = pformat(parameter_values)\n", - " \n", - " # Add pybamm. to functions that didn't have it in function body before\n", - " for funcname in [\"exp\"]:\n", - " output.replace(f\" {funcname}\", f\" pybamm.{funcname}\")\n", - "\n", - " # Make it a function\n", - " param_dict = param_dict.replace(\"{\", \"def get_parameter_values():\\n return {\")\n", - " # Replace : 'function_name', with : function_name,\n", - " param_dict = param_dict.replace(\"': '\", \"': \").replace(\"',\", \",\")\n", - " \n", - " output += param_dict\n", - " with open(filename, \"w\") as f:\n", - " f.write(output)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3.9.13 ('conda_jl')", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.13" - }, - "orig_nbformat": 4, - "vscode": { - "interpreter": { - "hash": "612adcc456652826e82b485a1edaef831aa6d5abc680d008e93d513dd8724f14" - } - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/pybamm/parameters/parameter_values.py b/pybamm/parameters/parameter_values.py index 6109717866..15d20d26c9 100644 --- a/pybamm/parameters/parameter_values.py +++ b/pybamm/parameters/parameter_values.py @@ -193,6 +193,8 @@ def update_from_chemistry(self, chemistry): "experiment", ] + self.component_params_by_group = {} + # add SEI parameters if provided for extra_group in ["sei", "lithium plating"]: if extra_group in chemistry: @@ -215,11 +217,9 @@ def update_from_chemistry(self, chemistry): file_path = self.find_parameter( os.path.join(component_path, "parameters.csv") ) - component_params_tmp = self.read_parameters_csv(file_path) + component_params = self.read_parameters_csv(file_path) - component_params = {} - for k, v in component_params_tmp.items(): - component_params[k] = v + self.component_params_by_group[component_group] = component_params # Update parameters, making sure to check any conflicts self.update( @@ -231,10 +231,10 @@ def update_from_chemistry(self, chemistry): # register (list of) citations if "citation" in chemistry: - citations = chemistry["citation"] - if not isinstance(citations, list): - citations = [citations] - for citation in citations: + self.citations = chemistry["citation"] + if not isinstance(self.citations, list): + self.citations = [self.citations] + for citation in self.citations: pybamm.citations.register(citation) def read_parameters_csv(self, filename): @@ -969,3 +969,89 @@ def find_parameter(path): pybamm.logger.verbose(f"Using path: '{location}' + '{path}'") return trial_path raise FileNotFoundError("Could not find parameter {}".format(path)) + + def print_as_python_script(self, name, path=None): + """ + Print a python script that can be used to reproduce the parameter set + + Parameters + ---------- + name : string + The name to save the parameter set under + path : string, optional + Optional path for the location where the parameter set should be saved + """ + filename = name + if not filename.endswith(".py"): + filename = filename + ".py" + if path is not None: + filename = path + filename + filename = pybamm.get_parameters_filepath(filename) + + preamble = "import pybamm\n" + function_output = "" + data_output = "" + negative_dict_output = "\n # Negative electrode" + separator_dict_output = "\n # Separator" + positive_dict_output = "\n # Positive electrode" + other_dict_output = "\n # Other" + + use_np = False + for k, v in self.items(): + if callable(v): + # write the function body to the file + function_output += inspect.getsource(v) + "\n" + v = v.__name__ + elif isinstance(v, tuple): + # save the data to a separate csv file and load it in the parameter set + data_name, data = v + data_file = path + f"{data_name}.csv" + # save data to a file + data_2D = np.hstack([data[0][0][:, np.newaxis], data[1][:, np.newaxis]]) + np.savetxt(data_file, data_2D, delimiter=",") + # add code to load data + data_output += ( + f"{data_name}_filename = pybamm.get_parameters_filepath" + f"('{path}{data_name}.csv')\n" + f"{data_name} = np.loadtxt({data_name}_filename, delimiter=',')\n" + ) + # replace data with data_name + v = f"('{data_name}', {data_name})" + use_np = True + elif np.isnan(v): + continue # skip this value + + # add line to the parameter output in the appropriate section + param_output = f"""\n "{k}": {v},""" + if "negative electrode" in k.lower(): + negative_dict_output += param_output + elif "separator" in k.lower(): + separator_dict_output += param_output + elif "positive electrode" in k.lower(): + positive_dict_output += param_output + else: + other_dict_output += param_output + + if use_np: + preamble += "import numpy as np\n" + + output = ( + preamble + + "\n\n" + + function_output + + data_output + + "\ndef get_parameter_values():\n return {" + + negative_dict_output + + separator_dict_output + + positive_dict_output + + other_dict_output + + "\n }" + ) + + # Add pybamm. to functions that didn't have it in function body before + for funcname in ["Parameter", "exp", "tanh", "cosh"]: + output = output.replace(f"{funcname}(", f"pybamm.{funcname}(") + output = output.replace("constants", "pybamm.constants") + + with open(filename, "w") as f: + f.write(output) From e96ec5dee3f8d4c5e7b0af74db8cd4d73e2e6421 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Mon, 3 Oct 2022 18:46:57 -0400 Subject: [PATCH 04/28] add readmes and better parameter files to generated python scripts --- parameters.py | 5 +- .../input/parameters/lead_acid/Sulzer2019.py | 163 +++- pybamm/input/parameters/lithium_ion/Ai2020.py | 259 +++-- .../input/parameters/lithium_ion/Chen2020.py | 206 +++- .../lithium_ion/Chen2020_composite.py | 227 +++-- .../input/parameters/lithium_ion/Ecker2015.py | 341 +++++-- .../parameters/lithium_ion/Marquis2019.py | 216 +++-- .../parameters/lithium_ion/Mohtat2020.py | 164 ++-- .../parameters/lithium_ion/NCA_Kim2011.py | 226 +++-- .../input/parameters/lithium_ion/OKane2022.py | 265 ++++-- .../parameters/lithium_ion/ORegan2022.py | 162 +++- .../input/parameters/lithium_ion/Prada2013.py | 150 ++- .../parameters/lithium_ion/Ramadass2004.py | 225 ++++- pybamm/input/parameters/lithium_ion/Xu2019.py | 169 +++- .../graphite_LGM50_ocp_Chen2020.csv | 481 +++++----- .../lithium_ion/graphite_ocp_Ecker2015.csv | 82 +- .../graphite_ocp_Enertech_Ai2020.csv | 254 ++--- .../lithium_ion/lico2_ocp_Ai2020.csv | 894 +++++++++--------- ...easured_graphite_diffusivity_Ecker2015.csv | 46 +- .../measured_nco_diffusivity_Ecker2015.csv | 30 +- .../lithium_ion/nca_ocp_Kim2011_data.csv | 150 +-- .../lithium_ion/nco_ocp_Ecker2015.csv | 86 +- pybamm/parameters/parameter_values.py | 174 +++- .../data/process_symbol_test_function.py | 11 - .../test_parameters/test_parameter_values.py | 54 +- 25 files changed, 3283 insertions(+), 1757 deletions(-) delete mode 100644 tests/unit/test_parameters/data/process_symbol_test_function.py diff --git a/parameters.py b/parameters.py index a7c37b4770..a070979fc3 100644 --- a/parameters.py +++ b/parameters.py @@ -3,6 +3,7 @@ import os import inspect from pprint import pformat +import subprocess all_parameter_sets = [x for x in dir(pybamm.parameter_sets) if not x.startswith("__")] @@ -12,9 +13,11 @@ else: relpath = "pybamm/input/parameters/lithium_ion/" parameter_values = pybamm.ParameterValues(getattr(pybamm.parameter_sets, name)) - parameter_values.print_as_python_script(name, path=relpath) + parameter_values.export_python_script(name, path=relpath) # test that loading the parameter set works pybamm.ParameterValues(name) print(f"{name}: ok") + +subprocess.run(["black", "."]) diff --git a/pybamm/input/parameters/lead_acid/Sulzer2019.py b/pybamm/input/parameters/lead_acid/Sulzer2019.py index 8b024dadc2..1fd187041c 100644 --- a/pybamm/input/parameters/lead_acid/Sulzer2019.py +++ b/pybamm/input/parameters/lead_acid/Sulzer2019.py @@ -20,6 +20,7 @@ def lead_ocp_Bode1977(m): ) return U + def lead_exchange_current_density_Sulzer2019(c_e, T): """ Dimensional exchange-current density in the negative (lead) electrode, from [1]_ @@ -51,6 +52,7 @@ def lead_exchange_current_density_Sulzer2019(c_e, T): return j0 + def lead_dioxide_ocp_Bode1977(m): """ Dimensional open-circuit voltage in the positive (lead-dioxide) electrode [V], @@ -70,6 +72,7 @@ def lead_dioxide_ocp_Bode1977(m): ) return U + def lead_dioxide_exchange_current_density_Sulzer2019(c_e, T): """ Dimensional exchange-current density in the positive electrode, from [1]_ @@ -107,6 +110,7 @@ def lead_dioxide_exchange_current_density_Sulzer2019(c_e, T): return j0 + def oxygen_exchange_current_density_Sulzer2019(c_e, T): """ Dimensional oxygen exchange-current density in the positive electrode, from [1]_ @@ -138,6 +142,7 @@ def oxygen_exchange_current_density_Sulzer2019(c_e, T): return j0 + def conductivity_Gu1997(c_e): """ Dimensional conductivity of sulfuric acid [S.m-1], from [1]_ citing [2]_ and @@ -159,6 +164,7 @@ def conductivity_Gu1997(c_e): """ return c_e * pybamm.exp(6.23 - 1.34e-4 * c_e - 1.61e-8 * c_e**2) * 1e-4 + def darken_thermodynamic_factor_Chapman1968(c_e): """ Dimensional Darken thermodynamic factor of sulfuric acid, from data in @@ -176,6 +182,7 @@ def darken_thermodynamic_factor_Chapman1968(c_e): """ return 0.49 + 4.1e-4 * c_e + def diffusivity_Gu1997(c_e): """ Dimensional Fickian diffusivity of sulfuric acid [m2.s-1], from [1]_ citing [2]_ @@ -197,6 +204,7 @@ def diffusivity_Gu1997(c_e): """ return (1.75 + 260e-6 * c_e) * 1e-9 + def viscosity_Chapman1968(c_e): """ Dimensional viscosity of sulfuric acid [kg.m-1.s-1], from data in [1]_, as a @@ -212,13 +220,95 @@ def viscosity_Chapman1968(c_e): return 0.89e-3 + 1.11e-7 * c_e + 3.29e-11 * c_e**2 +# Call dict via a function to avoid errors when editing in place def get_parameter_values(): + """ + # Sulzer2019 parameter set + # BBOXX cell parameters + + Cell-specific parameters for BBOXX lead-acid cells, from the paper + + > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster + lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + # Lead negative electrode parameters + + Parameters for a lead negative electrode, from the paper + + > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster + lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + + and references therein. + # AGM separator parameters + + Parameters for an Absorbent Glass Mat (AGM) separator, from the paper + + > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster + lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + + and references therein. + # Lead-dioxide positive electrode parameters + + Parameters for a lead-dioxide positive electrode, from the paper + + > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster + lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + + and references therein. + # Sulfuric acid electrolyte parameters + + Parameters for a sulfuric acid electrolyte, from the paper + + > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster + lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + + and references therein. + # 1C discharge from full + + Discharge lead-acid battery from full charge at 1C. + """ + return { - # Negative electrode + # cell + "Negative current collector thickness [m]": 0.0, "Negative electrode thickness [m]": 0.0009, + "Separator thickness [m]": 0.0015, + "Positive electrode thickness [m]": 0.00125, + "Positive current collector thickness [m]": 0.0, + "Electrode height [m]": 0.114, + "Electrode width [m]": 0.065, + "Negative tab width [m]": 0.04, + "Negative tab centre y-coordinate [m]": 0.06, + "Negative tab centre z-coordinate [m]": 0.114, + "Positive tab width [m]": 0.04, + "Positive tab centre y-coordinate [m]": 0.147, + "Positive tab centre z-coordinate [m]": 0.114, + "Cell cooling surface area [m2]": 0.154, + "Cell volume [m3]": 0.00027, + "Nominal cell capacity [A.h]": 17.0, + "Typical current [A]": 1.0, + "Current function [A]": 1.0, + "Negative current collector density [kg.m-3]": 11300.0, + "Positive current collector density [kg.m-3]": 9375.0, + "Negative current collector specific heat capacity [J.kg-1.K-1]": 130.0, + "Positive current collector specific heat capacity [J.kg-1.K-1]": 256.0, + "Negative current collector thermal conductivity [W.m-1.K-1]": 35.0, + "Positive current collector thermal conductivity [W.m-1.K-1]": 35.0, + # negative electrode "Negative electrode conductivity [S.m-1]": 4800000.0, "Negative electrode pore size [m]": 1e-07, "Maximum porosity of negative electrode": 0.53, + "Molar volume of lead [m3.mol-1]": 1.82539682539683e-05, + "Molar volume of lead sulfate [m3.mol-1]": 4.81717011128776e-05, "Negative electrode volumetric capacity [C.m-3]": 3473000000.0, "Negative electrode open-circuit potential [V]": lead_ocp_Bode1977, "Negative electrode surface area to volume ratio [m-1]": 2300000.0, @@ -229,24 +319,28 @@ def get_parameter_values(): "Negative electrode cation signed stoichiometry": 1.0, "Negative electrode electrons in reaction": 2.0, "Negative electrode exchange-current density [A.m-2]": lead_exchange_current_density_Sulzer2019, + "Signed stoichiometry of cations (oxygen reaction)": 4.0, + "Signed stoichiometry of water (oxygen reaction)": -1.0, + "Signed stoichiometry of oxygen (oxygen reaction)": 1.0, + "Electrons in oxygen reaction": 4.0, "Negative electrode reference exchange-current density (oxygen) [A.m-2]": 2.5e-32, + "Reference oxygen molecule concentration [mol.m-3]": 1000.0, + "Oxygen reference OCP vs SHE [V]": 1.229, + "Signed stoichiometry of cations (hydrogen reaction)": 2.0, + "Signed stoichiometry of hydrogen (hydrogen reaction)": -1.0, + "Electrons in hydrogen reaction": 2.0, "Negative electrode reference exchange-current density (hydrogen) [A.m-2]": 1.56e-11, + "Hydrogen reference OCP vs SHE [V]": 0.0, "Negative electrode double-layer capacity [F.m-2]": 0.2, "Negative electrode density [kg.m-3]": 11300.0, "Negative electrode specific heat capacity [J.kg-1.K-1]": 130.0, "Negative electrode thermal conductivity [W.m-1.K-1]": 35.0, - # Separator - "Separator thickness [m]": 0.0015, - "Maximum porosity of separator": 0.92, - "Separator Bruggeman coefficient (electrolyte)": 1.5, - "Separator density [kg.m-3]": 1680.0, - "Separator specific heat capacity [J.kg-1.K-1]": 700.0, - "Separator thermal conductivity [W.m-1.K-1]": 0.04, - # Positive electrode - "Positive electrode thickness [m]": 0.00125, + # positive electrode "Positive electrode conductivity [S.m-1]": 80000.0, "Positive electrode pore size [m]": 1e-07, "Maximum porosity of positive electrode": 0.57, + "Molar volume of lead-dioxide [m3.mol-1]": 2.54797441364606e-05, + "Molar volume of lead sulfate [m3.mol-1]": 4.81717011128776e-05, "Positive electrode volumetric capacity [C.m-3]": 2745000000.0, "Positive electrode open-circuit potential [V]": lead_dioxide_ocp_Bode1977, "Positive electrode surface area to volume ratio [m-1]": 23000000.0, @@ -257,47 +351,29 @@ def get_parameter_values(): "Positive electrode cation signed stoichiometry": 3.0, "Positive electrode electrons in reaction": 2.0, "Positive electrode exchange-current density [A.m-2]": lead_dioxide_exchange_current_density_Sulzer2019, - "Positive electrode oxygen exchange-current density [A.m-2]": oxygen_exchange_current_density_Sulzer2019, - "Positive electrode reference exchange-current density (hydrogen) [A.m-2]": 0.0, - "Positive electrode double-layer capacity [F.m-2]": 0.2, - "Positive electrode density [kg.m-3]": 9375.0, - "Positive electrode specific heat capacity [J.kg-1.K-1]": 256.0, - "Positive electrode thermal conductivity [W.m-1.K-1]": 35.0, - # Other - "Negative current collector thickness [m]": 0.0, - "Positive current collector thickness [m]": 0.0, - "Electrode height [m]": 0.114, - "Electrode width [m]": 0.065, - "Negative tab width [m]": 0.04, - "Negative tab centre y-coordinate [m]": 0.06, - "Negative tab centre z-coordinate [m]": 0.114, - "Positive tab width [m]": 0.04, - "Positive tab centre y-coordinate [m]": 0.147, - "Positive tab centre z-coordinate [m]": 0.114, - "Cell cooling surface area [m2]": 0.154, - "Cell volume [m3]": 0.00027, - "Nominal cell capacity [A.h]": 17.0, - "Typical current [A]": 1.0, - "Current function [A]": 1.0, - "Negative current collector density [kg.m-3]": 11300.0, - "Positive current collector density [kg.m-3]": 9375.0, - "Negative current collector specific heat capacity [J.kg-1.K-1]": 130.0, - "Positive current collector specific heat capacity [J.kg-1.K-1]": 256.0, - "Negative current collector thermal conductivity [W.m-1.K-1]": 35.0, - "Positive current collector thermal conductivity [W.m-1.K-1]": 35.0, - "Molar volume of lead [m3.mol-1]": 1.82539682539683e-05, - "Molar volume of lead sulfate [m3.mol-1]": 4.81717011128776e-05, "Signed stoichiometry of cations (oxygen reaction)": 4.0, "Signed stoichiometry of water (oxygen reaction)": -1.0, "Signed stoichiometry of oxygen (oxygen reaction)": 1.0, "Electrons in oxygen reaction": 4.0, + "Positive electrode oxygen exchange-current density [A.m-2]": oxygen_exchange_current_density_Sulzer2019, "Reference oxygen molecule concentration [mol.m-3]": 1000.0, "Oxygen reference OCP vs SHE [V]": 1.229, "Signed stoichiometry of cations (hydrogen reaction)": 2.0, "Signed stoichiometry of hydrogen (hydrogen reaction)": -1.0, "Electrons in hydrogen reaction": 2.0, + "Positive electrode reference exchange-current density (hydrogen) [A.m-2]": 0.0, "Hydrogen reference OCP vs SHE [V]": 0.0, - "Molar volume of lead-dioxide [m3.mol-1]": 2.54797441364606e-05, + "Positive electrode double-layer capacity [F.m-2]": 0.2, + "Positive electrode density [kg.m-3]": 9375.0, + "Positive electrode specific heat capacity [J.kg-1.K-1]": 256.0, + "Positive electrode thermal conductivity [W.m-1.K-1]": 35.0, + # separator + "Maximum porosity of separator": 0.92, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator density [kg.m-3]": 1680.0, + "Separator specific heat capacity [J.kg-1.K-1]": 700.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.04, + # electrolyte "Typical electrolyte concentration [mol.m-3]": 5650.0, "Cation transference number": 0.7, "1 + dlnf/dlnc": 1.0, @@ -321,6 +397,7 @@ def get_parameter_values(): "Partial molar volume of hydrogen molecules [m3.mol-1]": 2.31e-05, "Molar mass of oxygen molecules [kg.mol-1]": 0.032, "Molar mass of hydrogen molecules [kg.mol-1]": 0.002, + # experiment "Reference temperature [K]": 294.85, "Maximum temperature [K]": 333.15, "Ambient temperature [K]": 294.85, @@ -337,4 +414,6 @@ def get_parameter_values(): "Initial State of Charge": 1.0, "Initial oxygen concentration [mol.m-3]": 0.0, "Initial temperature [K]": 294.85, - } \ No newline at end of file + # citations + "citations": ["Sulzer2019physical"], + } diff --git a/pybamm/input/parameters/lithium_ion/Ai2020.py b/pybamm/input/parameters/lithium_ion/Ai2020.py index d9d446f456..6eb929df0b 100644 --- a/pybamm/input/parameters/lithium_ion/Ai2020.py +++ b/pybamm/input/parameters/lithium_ion/Ai2020.py @@ -1,5 +1,5 @@ import pybamm -import numpy as np +import pandas as pd def graphite_diffusivity_Dualfoil1998(sto, T): @@ -34,6 +34,7 @@ def graphite_diffusivity_Dualfoil1998(sto, T): arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / T_ref - 1 / T)) return D_ref * arrhenius + def graphite_electrolyte_exchange_current_density_Dualfoil1998( c_e, c_s_surf, c_s_max, T ): @@ -71,6 +72,7 @@ def graphite_electrolyte_exchange_current_density_Dualfoil1998( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def graphite_entropy_Enertech_Ai2020_function(sto, c_s_max): """ Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at @@ -123,6 +125,7 @@ def graphite_entropy_Enertech_Ai2020_function(sto, c_s_max): return du_dT + def graphite_volume_change_Ai2020(sto, c_s_max): """ Graphite particle volume change as a function of stochiometry [1, 2]. @@ -174,6 +177,7 @@ def graphite_volume_change_Ai2020(sto, c_s_max): ) return t_change + def graphite_cracking_rate_Ai2020(T_dim): """ graphite particle cracking rate as a function of temperature [1, 2]. @@ -207,6 +211,7 @@ def graphite_cracking_rate_Ai2020(T_dim): arrhenius = pybamm.exp(Eac_cr / pybamm.constants.R * (1 / T_dim - 1 / T_ref)) return k_cr * arrhenius + def lico2_diffusivity_Dualfoil1998(sto, T): """ LiCo2 diffusivity as a function of stochiometry, in this case the @@ -234,6 +239,7 @@ def lico2_diffusivity_Dualfoil1998(sto, T): arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / T_ref - 1 / T)) return D_ref * arrhenius + def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between lico2 and LiPF6 in @@ -268,6 +274,7 @@ def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def lico2_entropic_change_Ai2020_function(sto, c_s_max): """ Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at @@ -317,6 +324,7 @@ def lico2_entropic_change_Ai2020_function(sto, c_s_max): return du_dT + def lico2_volume_change_Ai2020(sto, c_s_max): """ lico2 particle volume change as a function of stochiometry [1, 2]. @@ -348,6 +356,7 @@ def lico2_volume_change_Ai2020(sto, c_s_max): t_change = omega * c_s_max * sto return t_change + def lico2_cracking_rate_Ai2020(T_dim): """ lico2 particle cracking rate as a function of temperature [1, 2]. @@ -381,6 +390,7 @@ def lico2_cracking_rate_Ai2020(T_dim): arrhenius = pybamm.exp(Eac_cr / pybamm.constants.R * (1 / T_dim - 1 / T_ref)) return k_cr * arrhenius + def dlnf_dlnc_Ai2020(c_e, T, T_ref=298.3, t_plus=0.38): """ Activity dependence of LiPF6 in EC:DMC as a function of ion concentration. @@ -413,6 +423,7 @@ def dlnf_dlnc_Ai2020(c_e, T, T_ref=298.3, t_plus=0.38): ) / (1 - t_plus) return dlnf_dlnc + def electrolyte_diffusivity_Ai2020(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. @@ -442,6 +453,7 @@ def electrolyte_diffusivity_Ai2020(c_e, T): return D_c_e + def electrolyte_conductivity_Ai2020(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration. @@ -483,22 +495,183 @@ def electrolyte_conductivity_Ai2020(c_e, T): return sigma_e -graphite_ocp_Enertech_Ai2020_filename = pybamm.get_parameters_filepath('pybamm/input/parameters/lithium_ion/graphite_ocp_Enertech_Ai2020.csv') -graphite_ocp_Enertech_Ai2020 = np.loadtxt(graphite_ocp_Enertech_Ai2020_filename, delimiter=',') -lico2_ocp_Ai2020_filename = pybamm.get_parameters_filepath('pybamm/input/parameters/lithium_ion/lico2_ocp_Ai2020.csv') -lico2_ocp_Ai2020 = np.loadtxt(lico2_ocp_Ai2020_filename, delimiter=',') +graphite_ocp_Enertech_Ai2020_filename = pybamm.get_parameters_filepath( + "pybamm/input/parameters/lithium_ion/graphite_ocp_Enertech_Ai2020.csv" +) +graphite_ocp_Enertech_Ai2020 = pd.read_csv( + graphite_ocp_Enertech_Ai2020_filename, comment="#" +) +lico2_ocp_Ai2020_filename = pybamm.get_parameters_filepath( + "pybamm/input/parameters/lithium_ion/lico2_ocp_Ai2020.csv" +) +lico2_ocp_Ai2020 = pd.read_csv(lico2_ocp_Ai2020_filename, comment="#") + +# Call dict via a function to avoid errors when editing in place def get_parameter_values(): + """ + # Ai2020 parameter set + # Enertech cell parameters + + Parameters for the Enertech cell, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # Enertech Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # Enertech Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # Lithium Cobalt Oxide positive electrode parameters + + Parameters for a lithium Cobalt Oxide positive electrode, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # Enertech Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + Development of first principles capacity fade model for Li-ion cells. Journal of the + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. + > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. + """ + return { - # Negative electrode + # sei + "Ratio of lithium moles to SEI moles": 2.0, + "Inner SEI reaction proportion": 0.5, + "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, + "SEI reaction exchange current density [A.m-2]": 1.5e-07, + "SEI resistivity [Ohm.m]": 200000.0, + "Outer SEI solvent diffusivity [m2.s-1]": 2.5000000000000002e-22, + "Bulk solvent concentration [mol.m-3]": 2636.0, + "Inner SEI open-circuit potential [V]": 0.1, + "Outer SEI open-circuit potential [V]": 0.8, + "Inner SEI electron conductivity [S.m-1]": 8.95e-14, + "Inner SEI lithium interstitial diffusivity [m2.s-1]": 1e-20, + "Lithium interstitial reference concentration [mol.m-3]": 15.0, + "Initial inner SEI thickness [m]": 2.5e-09, + "Initial outer SEI thickness [m]": 2.5e-09, + "EC initial concentration in electrolyte [mol.m-3]": 4541.0, + "EC diffusivity [m2.s-1]": 2e-18, + "SEI kinetic rate constant [m.s-1]": 1e-12, + "SEI open-circuit potential [V]": 0.4, + "SEI growth activation energy [J.mol-1]": 0.0, "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + # cell + "Negative current collector thickness [m]": 1e-05, "Negative electrode thickness [m]": 7.65e-05, + "Separator thickness [m]": 2.5e-05, + "Positive electrode thickness [m]": 6.8e-05, + "Positive current collector thickness [m]": 1.5e-05, + "Electrode height [m]": 0.051, + "Electrode width [m]": 0.047, + "Cell cooling surface area [m2]": 0.0060484, + "Cell volume [m3]": 1.5341e-05, + "Cell emissivity": 0.95, + "Cell thermal expansion coefficient [m.K-1]": 1.1e-06, + "Negative current collector conductivity [S.m-1]": 58411000.0, + "Positive current collector conductivity [S.m-1]": 36914000.0, + "Negative current collector density [kg.m-3]": 8960.0, + "Positive current collector density [kg.m-3]": 2700.0, + "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, + "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, + "Negative current collector thermal conductivity [W.m-1.K-1]": 401.0, + "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, + "Nominal cell capacity [A.h]": 2.28, + "Typical current [A]": 2.28, + "Current function [A]": 2.28, + # negative electrode "Negative electrode conductivity [S.m-1]": 100.0, "Maximum concentration in negative electrode [mol.m-3]": 28700.0, "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_Dualfoil1998, - "Negative electrode OCP [V]": ('graphite_ocp_Enertech_Ai2020', graphite_ocp_Enertech_Ai2020), + "Negative electrode OCP [V]": ( + "graphite_ocp_Enertech_Ai2020", + graphite_ocp_Enertech_Ai2020, + ), "Negative electrode porosity": 0.33, "Negative electrode active material volume fraction": 0.61, + "Negative particle radius [m]": 5e-06, "Negative electrode Bruggeman coefficient (electrolyte)": 2.914, "Negative electrode Bruggeman coefficient (electrode)": 0.0, "Negative electrode cation signed stoichiometry": -1.0, @@ -525,23 +698,14 @@ def get_parameter_values(): "Negative electrode LAM constant proportional term [s-1]": 0.0, "Negative electrode LAM constant exponential term": 2.0, "Negative electrode critical stress [Pa]": 60000000.0, - "Initial concentration in negative electrode [mol.m-3]": 24108.0, - # Separator - "Separator thickness [m]": 2.5e-05, - "Separator porosity": 0.5, - "Separator Bruggeman coefficient (electrolyte)": 1.5, - "Separator density [kg.m-3]": 2470.0, - "Separator specific heat capacity [J.kg-1.K-1]": 1080.2, - "Separator thermal conductivity [W.m-1.K-1]": 0.334, - # Positive electrode - "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, - "Positive electrode thickness [m]": 6.8e-05, + # positive electrode "Positive electrode conductivity [S.m-1]": 10.0, "Maximum concentration in positive electrode [mol.m-3]": 49943.0, "Positive electrode diffusivity [m2.s-1]": lico2_diffusivity_Dualfoil1998, - "Positive electrode OCP [V]": ('lico2_ocp_Ai2020', lico2_ocp_Ai2020), + "Positive electrode OCP [V]": ("lico2_ocp_Ai2020", lico2_ocp_Ai2020), "Positive electrode porosity": 0.32, "Positive electrode active material volume fraction": 0.62, + "Positive particle radius [m]": 3e-06, "Positive electrode surface area to volume ratio [m-1]": 620000.0, "Positive electrode Bruggeman coefficient (electrolyte)": 1.83, "Positive electrode Bruggeman coefficient (electrode)": 0.0, @@ -569,55 +733,20 @@ def get_parameter_values(): "Positive electrode LAM constant proportional term [s-1]": 2.78e-13, "Positive electrode LAM constant exponential term": 2.0, "Positive electrode critical stress [Pa]": 375000000.0, - "Initial concentration in positive electrode [mol.m-3]": 21725.0, - # Other - "Ratio of lithium moles to SEI moles": 2.0, - "Inner SEI reaction proportion": 0.5, - "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, - "Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, - "SEI reaction exchange current density [A.m-2]": 1.5e-07, - "SEI resistivity [Ohm.m]": 200000.0, - "Outer SEI solvent diffusivity [m2.s-1]": 2.5000000000000002e-22, - "Bulk solvent concentration [mol.m-3]": 2636.0, - "Inner SEI open-circuit potential [V]": 0.1, - "Outer SEI open-circuit potential [V]": 0.8, - "Inner SEI electron conductivity [S.m-1]": 8.95e-14, - "Inner SEI lithium interstitial diffusivity [m2.s-1]": 1e-20, - "Lithium interstitial reference concentration [mol.m-3]": 15.0, - "Initial inner SEI thickness [m]": 2.5e-09, - "Initial outer SEI thickness [m]": 2.5e-09, - "EC initial concentration in electrolyte [mol.m-3]": 4541.0, - "EC diffusivity [m2.s-1]": 2e-18, - "SEI kinetic rate constant [m.s-1]": 1e-12, - "SEI open-circuit potential [V]": 0.4, - "SEI growth activation energy [J.mol-1]": 0.0, - "Negative current collector thickness [m]": 1e-05, - "Positive current collector thickness [m]": 1.5e-05, - "Electrode height [m]": 0.051, - "Electrode width [m]": 0.047, - "Cell cooling surface area [m2]": 0.0060484, - "Cell volume [m3]": 1.5341e-05, - "Cell emissivity": 0.95, - "Cell thermal expansion coefficient [m.K-1]": 1.1e-06, - "Negative current collector conductivity [S.m-1]": 58411000.0, - "Positive current collector conductivity [S.m-1]": 36914000.0, - "Negative current collector density [kg.m-3]": 8960.0, - "Positive current collector density [kg.m-3]": 2700.0, - "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, - "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, - "Negative current collector thermal conductivity [W.m-1.K-1]": 401.0, - "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, - "Nominal cell capacity [A.h]": 2.28, - "Typical current [A]": 2.28, - "Current function [A]": 2.28, - "Negative particle radius [m]": 5e-06, - "Positive particle radius [m]": 3e-06, + # separator + "Separator porosity": 0.5, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator density [kg.m-3]": 2470.0, + "Separator specific heat capacity [J.kg-1.K-1]": 1080.2, + "Separator thermal conductivity [W.m-1.K-1]": 0.334, + # electrolyte "Typical electrolyte concentration [mol.m-3]": 1000.0, "Initial concentration in electrolyte [mol.m-3]": 1000.0, "Cation transference number": 0.38, "1 + dlnf/dlnc": dlnf_dlnc_Ai2020, "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Ai2020, "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Ai2020, + # experiment "Reference temperature [K]": 298.15, "Total heat transfer coefficient [W.m-2.K-1]": 35.0, "Ambient temperature [K]": 298.15, @@ -625,5 +754,9 @@ def get_parameter_values(): "Number of cells connected in series to make a battery": 1.0, "Lower voltage cut-off [V]": 3.0, "Upper voltage cut-off [V]": 4.2, + "Initial concentration in negative electrode [mol.m-3]": 24108.0, + "Initial concentration in positive electrode [mol.m-3]": 21725.0, "Initial temperature [K]": 298.15, - } \ No newline at end of file + # citations + "citations": ["Ai2019"], + } diff --git a/pybamm/input/parameters/lithium_ion/Chen2020.py b/pybamm/input/parameters/lithium_ion/Chen2020.py index b6073b595c..6a2a064360 100644 --- a/pybamm/input/parameters/lithium_ion/Chen2020.py +++ b/pybamm/input/parameters/lithium_ion/Chen2020.py @@ -34,6 +34,7 @@ def graphite_LGM50_ocp_Chen2020(sto): return u_eq + def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( c_e, c_s_surf, c_s_max, T ): @@ -72,6 +73,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def nmc_LGM50_ocp_Chen2020(sto): """ LG M50 NMC open circuit potential as a function of stochiometry, fit taken @@ -105,6 +107,7 @@ def nmc_LGM50_ocp_Chen2020(sto): return u_eq + def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -141,6 +144,7 @@ def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def electrolyte_diffusivity_Nyman2008(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -171,6 +175,7 @@ def electrolyte_diffusivity_Nyman2008(c_e, T): return D_c_e + def electrolyte_conductivity_Nyman2008(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -204,58 +209,103 @@ def electrolyte_conductivity_Nyman2008(c_e, T): return sigma_e +# Call dict via a function to avoid errors when editing in place def get_parameter_values(): + """ + # Chen2020 parameter set + # LG M50 cell parameters + + Parameters for an LG M50 cell, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # LG M50 Graphite negative electrode parameters + + Parameters for a LG M50 graphite negative electrode, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # Separator parameters + + Parameters for an LG M50 separator, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # NMC 811 positive electrode parameters + + Parameters for an LG M50 NMC 811 positive electrode, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and + modelling of the mass transport phenomena in LiPF6-EC-EMC + electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) + Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + Development of first principles capacity fade model for Li-ion cells. Journal of the + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. + > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. + """ + return { - # Negative electrode - "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, - "Negative electrode thickness [m]": 8.52e-05, - "Negative electrode conductivity [S.m-1]": 215.0, - "Maximum concentration in negative electrode [mol.m-3]": 33133.0, - "Negative electrode diffusivity [m2.s-1]": 3.3e-14, - "Negative electrode OCP [V]": graphite_LGM50_ocp_Chen2020, - "Negative electrode porosity": 0.25, - "Negative electrode active material volume fraction": 0.75, - "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, - "Negative electrode Bruggeman coefficient (electrode)": 1.5, - "Negative electrode cation signed stoichiometry": -1.0, - "Negative electrode electrons in reaction": 1.0, - "Negative electrode charge transfer coefficient": 0.5, - "Negative electrode double-layer capacity [F.m-2]": 0.2, - "Negative electrode exchange-current density [A.m-2]": graphite_LGM50_electrolyte_exchange_current_density_Chen2020, - "Negative electrode density [kg.m-3]": 1657.0, - "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, - "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, - "Negative electrode OCP entropic change [V.K-1]": 0.0, - "Initial concentration in negative electrode [mol.m-3]": 29866.0, - # Separator - "Separator thickness [m]": 1.2e-05, - "Separator porosity": 0.47, - "Separator Bruggeman coefficient (electrolyte)": 1.5, - "Separator density [kg.m-3]": 397.0, - "Separator specific heat capacity [J.kg-1.K-1]": 700.0, - "Separator thermal conductivity [W.m-1.K-1]": 0.16, - # Positive electrode - "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, - "Positive electrode thickness [m]": 7.56e-05, - "Positive electrode conductivity [S.m-1]": 0.18, - "Maximum concentration in positive electrode [mol.m-3]": 63104.0, - "Positive electrode diffusivity [m2.s-1]": 4e-15, - "Positive electrode OCP [V]": nmc_LGM50_ocp_Chen2020, - "Positive electrode porosity": 0.335, - "Positive electrode active material volume fraction": 0.665, - "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, - "Positive electrode Bruggeman coefficient (electrode)": 1.5, - "Positive electrode cation signed stoichiometry": -1.0, - "Positive electrode electrons in reaction": 1.0, - "Positive electrode charge transfer coefficient": 0.5, - "Positive electrode double-layer capacity [F.m-2]": 0.2, - "Positive electrode exchange-current density [A.m-2]": nmc_LGM50_electrolyte_exchange_current_density_Chen2020, - "Positive electrode density [kg.m-3]": 3262.0, - "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, - "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, - "Positive electrode OCP entropic change [V.K-1]": 0.0, - "Initial concentration in positive electrode [mol.m-3]": 17038.0, - # Other + # sei "Ratio of lithium moles to SEI moles": 2.0, "Inner SEI reaction proportion": 0.5, "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, @@ -276,7 +326,13 @@ def get_parameter_values(): "SEI kinetic rate constant [m.s-1]": 1e-12, "SEI open-circuit potential [V]": 0.4, "SEI growth activation energy [J.mol-1]": 0.0, + "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + # cell "Negative current collector thickness [m]": 1.2e-05, + "Negative electrode thickness [m]": 8.52e-05, + "Separator thickness [m]": 1.2e-05, + "Positive electrode thickness [m]": 7.56e-05, "Positive current collector thickness [m]": 1.6e-05, "Electrode height [m]": 0.065, "Electrode width [m]": 1.58, @@ -294,14 +350,58 @@ def get_parameter_values(): "Nominal cell capacity [A.h]": 5.0, "Typical current [A]": 5.0, "Current function [A]": 5.0, + # negative electrode + "Negative electrode conductivity [S.m-1]": 215.0, + "Maximum concentration in negative electrode [mol.m-3]": 33133.0, + "Negative electrode diffusivity [m2.s-1]": 3.3e-14, + "Negative electrode OCP [V]": graphite_LGM50_ocp_Chen2020, + "Negative electrode porosity": 0.25, + "Negative electrode active material volume fraction": 0.75, "Negative particle radius [m]": 5.86e-06, + "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, + "Negative electrode Bruggeman coefficient (electrode)": 1.5, + "Negative electrode cation signed stoichiometry": -1.0, + "Negative electrode electrons in reaction": 1.0, + "Negative electrode charge transfer coefficient": 0.5, + "Negative electrode double-layer capacity [F.m-2]": 0.2, + "Negative electrode exchange-current density [A.m-2]": graphite_LGM50_electrolyte_exchange_current_density_Chen2020, + "Negative electrode density [kg.m-3]": 1657.0, + "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, + "Negative electrode OCP entropic change [V.K-1]": 0.0, + # positive electrode + "Positive electrode conductivity [S.m-1]": 0.18, + "Maximum concentration in positive electrode [mol.m-3]": 63104.0, + "Positive electrode diffusivity [m2.s-1]": 4e-15, + "Positive electrode OCP [V]": nmc_LGM50_ocp_Chen2020, + "Positive electrode porosity": 0.335, + "Positive electrode active material volume fraction": 0.665, "Positive particle radius [m]": 5.22e-06, + "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, + "Positive electrode Bruggeman coefficient (electrode)": 1.5, + "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode electrons in reaction": 1.0, + "Positive electrode charge transfer coefficient": 0.5, + "Positive electrode double-layer capacity [F.m-2]": 0.2, + "Positive electrode exchange-current density [A.m-2]": nmc_LGM50_electrolyte_exchange_current_density_Chen2020, + "Positive electrode density [kg.m-3]": 3262.0, + "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, + "Positive electrode OCP entropic change [V.K-1]": 0.0, + # separator + "Separator porosity": 0.47, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator density [kg.m-3]": 397.0, + "Separator specific heat capacity [J.kg-1.K-1]": 700.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.16, + # electrolyte "Typical electrolyte concentration [mol.m-3]": 1000.0, "Initial concentration in electrolyte [mol.m-3]": 1000.0, "Cation transference number": 0.2594, "1 + dlnf/dlnc": 1.0, "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Nyman2008, "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Nyman2008, + # experiment "Reference temperature [K]": 298.15, "Total heat transfer coefficient [W.m-2.K-1]": 10.0, "Ambient temperature [K]": 298.15, @@ -309,5 +409,9 @@ def get_parameter_values(): "Number of cells connected in series to make a battery": 1.0, "Lower voltage cut-off [V]": 2.5, "Upper voltage cut-off [V]": 4.2, + "Initial concentration in negative electrode [mol.m-3]": 29866.0, + "Initial concentration in positive electrode [mol.m-3]": 17038.0, "Initial temperature [K]": 298.15, - } \ No newline at end of file + # citations + "citations": ["Chen2020"], + } diff --git a/pybamm/input/parameters/lithium_ion/Chen2020_composite.py b/pybamm/input/parameters/lithium_ion/Chen2020_composite.py index 08bd760313..cbd0cfe304 100644 --- a/pybamm/input/parameters/lithium_ion/Chen2020_composite.py +++ b/pybamm/input/parameters/lithium_ion/Chen2020_composite.py @@ -1,5 +1,5 @@ import pybamm -import numpy as np +import pandas as pd def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( @@ -40,6 +40,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def silicon_ocp_lithiation_Mark2016(sto): """ silicon Open Circuit Potential (OCP) as a a function of the @@ -83,6 +84,7 @@ def silicon_ocp_lithiation_Mark2016(sto): ) return U_lithiation + def silicon_ocp_delithiation_Mark2016(sto): """ silicon Open Circuit Potential (OCP) as a a function of the @@ -126,6 +128,7 @@ def silicon_ocp_delithiation_Mark2016(sto): ) return U_delithiation + def silicon_LGM50_electrolyte_exchange_current_density_Chen2020( c_e, c_s_surf, c_s_max, T ): @@ -167,6 +170,7 @@ def silicon_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def nmc_LGM50_ocp_Chen2020(sto): """ LG M50 NMC open circuit potential as a function of stochiometry, fit taken @@ -200,6 +204,7 @@ def nmc_LGM50_ocp_Chen2020(sto): return u_eq + def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -236,6 +241,7 @@ def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def electrolyte_diffusivity_Nyman2008(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -266,6 +272,7 @@ def electrolyte_diffusivity_Nyman2008(c_e, T): return D_c_e + def electrolyte_conductivity_Nyman2008(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -298,20 +305,158 @@ def electrolyte_conductivity_Nyman2008(c_e, T): return sigma_e -graphite_ocp_Enertech_Ai2020_filename = pybamm.get_parameters_filepath('pybamm/input/parameters/lithium_ion/graphite_ocp_Enertech_Ai2020.csv') -graphite_ocp_Enertech_Ai2020 = np.loadtxt(graphite_ocp_Enertech_Ai2020_filename, delimiter=',') +graphite_ocp_Enertech_Ai2020_filename = pybamm.get_parameters_filepath( + "pybamm/input/parameters/lithium_ion/graphite_ocp_Enertech_Ai2020.csv" +) +graphite_ocp_Enertech_Ai2020 = pd.read_csv( + graphite_ocp_Enertech_Ai2020_filename, comment="#" +) + +# Call dict via a function to avoid errors when editing in place def get_parameter_values(): + """ + # Chen2020_composite parameter set + # LG M50 cell parameters + + Parameters for an LG M50 cell, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # Graphite/silicon negative electrode parameters + + Parameters for a composite graphite/silicon negative electrode, from the paper + + > Ai, W., Kirkaldy, N., Jiang, Y., Offer, G., Wang, H., & Wu, B. (2022). A composite + electrode model for lithium-ion batteries with silicon/graphite negative + electrodes. Journal of Power Sources, 527, 231142. + + based on the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # Separator parameters + + Parameters for an LG M50 separator, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # NMC 811 positive electrode parameters + + Parameters for an LG M50 NMC 811 positive electrode, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and + modelling of the mass transport phenomena in LiPF6-EC-EMC + electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) + Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # SEI parameters + + Example parameters for composite SEI on silicon/graphite. Both phases use the same + values, from the paper + + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + """ + return { - # Negative electrode + # sei + "Primary: Ratio of lithium moles to SEI moles": 2.0, + "Primary: Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Primary: Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Primary: SEI resistivity [Ohm.m]": 200000.0, + "Primary: Initial inner SEI thickness [m]": 2.5e-09, + "Primary: Initial outer SEI thickness [m]": 2.5e-09, + "Primary: EC initial concentration in electrolyte [mol.m-3]": 4541.0, + "Primary: EC diffusivity [m2.s-1]": 2e-18, + "Primary: SEI kinetic rate constant [m.s-1]": 1e-12, + "Primary: SEI open-circuit potential [V]": 0.4, + "Primary: SEI growth activation energy [J.mol-1]": 0.0, + "Secondary: Ratio of lithium moles to SEI moles": 2.0, + "Secondary: Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Secondary: Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Secondary: SEI resistivity [Ohm.m]": 200000.0, + "Secondary: Initial inner SEI thickness [m]": 2.5e-09, + "Secondary: Initial outer SEI thickness [m]": 2.5e-09, + "Secondary: EC initial concentration in electrolyte [mol.m-3]": 4541.0, + "Secondary: EC diffusivity [m2.s-1]": 2e-18, + "Secondary: SEI kinetic rate constant [m.s-1]": 1e-12, + "Secondary: SEI open-circuit potential [V]": 0.4, + "Secondary: SEI growth activation energy [J.mol-1]": 0.0, + # cell + "Negative current collector thickness [m]": 1.2e-05, "Negative electrode thickness [m]": 8.52e-05, + "Separator thickness [m]": 1.2e-05, + "Positive electrode thickness [m]": 7.56e-05, + "Positive current collector thickness [m]": 1.6e-05, + "Electrode height [m]": 0.065, + "Electrode width [m]": 1.58, + "Cell cooling surface area [m2]": 0.00531, + "Cell volume [m3]": 2.42e-05, + "Cell thermal expansion coefficient [m.K-1]": 1.1e-06, + "Negative current collector conductivity [S.m-1]": 58411000.0, + "Positive current collector conductivity [S.m-1]": 36914000.0, + "Negative current collector density [kg.m-3]": 8960.0, + "Positive current collector density [kg.m-3]": 2700.0, + "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, + "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, + "Negative current collector thermal conductivity [W.m-1.K-1]": 401.0, + "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, + "Nominal cell capacity [A.h]": 5.0, + "Typical current [A]": 5.0, + "Current function [A]": 5.0, + # negative electrode "Negative electrode conductivity [S.m-1]": 215.0, "Primary: Maximum concentration in negative electrode [mol.m-3]": 28700.0, "Primary: Initial concentration in negative electrode [mol.m-3]": 27700.0, "Primary: Negative electrode diffusivity [m2.s-1]": 5.5e-14, - "Primary: Negative electrode OCP [V]": ('graphite_ocp_Enertech_Ai2020', graphite_ocp_Enertech_Ai2020), + "Primary: Negative electrode OCP [V]": ( + "graphite_ocp_Enertech_Ai2020", + graphite_ocp_Enertech_Ai2020, + ), "Negative electrode porosity": 0.25, "Primary: Negative electrode active material volume fraction": 0.735, + "Primary: Negative particle radius [m]": 5.86e-06, "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, "Negative electrode Bruggeman coefficient (electrode)": 1.5, "Negative electrode cation signed stoichiometry": -1.0, @@ -329,26 +474,19 @@ def get_parameter_values(): "Secondary: Negative electrode lithiation OCP [V]": silicon_ocp_lithiation_Mark2016, "Secondary: Negative electrode delithiation OCP [V]": silicon_ocp_delithiation_Mark2016, "Secondary: Negative electrode active material volume fraction": 0.015, + "Secondary: Negative particle radius [m]": 1.52e-06, "Secondary: Negative electrode electrons in reaction": 1.0, "Secondary: Negative electrode exchange-current density [A.m-2]": silicon_LGM50_electrolyte_exchange_current_density_Chen2020, "Secondary: Negative electrode density [kg.m-3]": 2650.0, "Secondary: Negative electrode OCP entropic change [V.K-1]": 0.0, - "Initial concentration in negative electrode [mol.m-3]": 29866.0, - # Separator - "Separator thickness [m]": 1.2e-05, - "Separator porosity": 0.47, - "Separator Bruggeman coefficient (electrolyte)": 1.5, - "Separator density [kg.m-3]": 397.0, - "Separator specific heat capacity [J.kg-1.K-1]": 700.0, - "Separator thermal conductivity [W.m-1.K-1]": 0.16, - # Positive electrode - "Positive electrode thickness [m]": 7.56e-05, + # positive electrode "Positive electrode conductivity [S.m-1]": 0.18, "Maximum concentration in positive electrode [mol.m-3]": 63104.0, "Positive electrode diffusivity [m2.s-1]": 4e-15, "Positive electrode OCP [V]": nmc_LGM50_ocp_Chen2020, "Positive electrode porosity": 0.335, "Positive electrode active material volume fraction": 0.665, + "Positive particle radius [m]": 5.22e-06, "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, "Positive electrode Bruggeman coefficient (electrode)": 1.5, "Positive electrode cation signed stoichiometry": -1.0, @@ -360,57 +498,20 @@ def get_parameter_values(): "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, "Positive electrode OCP entropic change [V.K-1]": 0.0, - "Initial concentration in positive electrode [mol.m-3]": 17038.0, - # Other - "Primary: Ratio of lithium moles to SEI moles": 2.0, - "Primary: Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, - "Primary: Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, - "Primary: SEI resistivity [Ohm.m]": 200000.0, - "Primary: Initial inner SEI thickness [m]": 2.5e-09, - "Primary: Initial outer SEI thickness [m]": 2.5e-09, - "Primary: EC initial concentration in electrolyte [mol.m-3]": 4541.0, - "Primary: EC diffusivity [m2.s-1]": 2e-18, - "Primary: SEI kinetic rate constant [m.s-1]": 1e-12, - "Primary: SEI open-circuit potential [V]": 0.4, - "Primary: SEI growth activation energy [J.mol-1]": 0.0, - "Secondary: Ratio of lithium moles to SEI moles": 2.0, - "Secondary: Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, - "Secondary: Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, - "Secondary: SEI resistivity [Ohm.m]": 200000.0, - "Secondary: Initial inner SEI thickness [m]": 2.5e-09, - "Secondary: Initial outer SEI thickness [m]": 2.5e-09, - "Secondary: EC initial concentration in electrolyte [mol.m-3]": 4541.0, - "Secondary: EC diffusivity [m2.s-1]": 2e-18, - "Secondary: SEI kinetic rate constant [m.s-1]": 1e-12, - "Secondary: SEI open-circuit potential [V]": 0.4, - "Secondary: SEI growth activation energy [J.mol-1]": 0.0, - "Negative current collector thickness [m]": 1.2e-05, - "Positive current collector thickness [m]": 1.6e-05, - "Electrode height [m]": 0.065, - "Electrode width [m]": 1.58, - "Cell cooling surface area [m2]": 0.00531, - "Cell volume [m3]": 2.42e-05, - "Cell thermal expansion coefficient [m.K-1]": 1.1e-06, - "Negative current collector conductivity [S.m-1]": 58411000.0, - "Positive current collector conductivity [S.m-1]": 36914000.0, - "Negative current collector density [kg.m-3]": 8960.0, - "Positive current collector density [kg.m-3]": 2700.0, - "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, - "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, - "Negative current collector thermal conductivity [W.m-1.K-1]": 401.0, - "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, - "Nominal cell capacity [A.h]": 5.0, - "Typical current [A]": 5.0, - "Current function [A]": 5.0, - "Primary: Negative particle radius [m]": 5.86e-06, - "Secondary: Negative particle radius [m]": 1.52e-06, - "Positive particle radius [m]": 5.22e-06, + # separator + "Separator porosity": 0.47, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator density [kg.m-3]": 397.0, + "Separator specific heat capacity [J.kg-1.K-1]": 700.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.16, + # electrolyte "Typical electrolyte concentration [mol.m-3]": 1000.0, "Initial concentration in electrolyte [mol.m-3]": 1000.0, "Cation transference number": 0.2594, "1 + dlnf/dlnc": 1.0, "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Nyman2008, "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Nyman2008, + # experiment "Reference temperature [K]": 298.15, "Total heat transfer coefficient [W.m-2.K-1]": 10.0, "Ambient temperature [K]": 298.15, @@ -418,5 +519,9 @@ def get_parameter_values(): "Number of cells connected in series to make a battery": 1.0, "Lower voltage cut-off [V]": 2.5, "Upper voltage cut-off [V]": 4.2, + "Initial concentration in negative electrode [mol.m-3]": 29866.0, + "Initial concentration in positive electrode [mol.m-3]": 17038.0, "Initial temperature [K]": 298.15, - } \ No newline at end of file + # citations + "citations": ["Chen2020", "Ai2022"], + } diff --git a/pybamm/input/parameters/lithium_ion/Ecker2015.py b/pybamm/input/parameters/lithium_ion/Ecker2015.py index 5b44f9dec2..9c91cb1ed2 100644 --- a/pybamm/input/parameters/lithium_ion/Ecker2015.py +++ b/pybamm/input/parameters/lithium_ion/Ecker2015.py @@ -1,5 +1,5 @@ import pybamm -import numpy as np +import pandas as pd def graphite_diffusivity_Ecker2015(sto, T): @@ -33,10 +33,13 @@ def graphite_diffusivity_Ecker2015(sto, T): D_ref = 8.4e-13 * pybamm.exp(-11.3 * sto) + 8.2e-15 E_D_s = 3.03e4 - arrhenius = pybamm.exp(-E_D_s / (pybamm.constants.R * T)) * pybamm.exp(E_D_s / (pybamm.constants.R * 296)) + arrhenius = pybamm.exp(-E_D_s / (pybamm.constants.R * T)) * pybamm.exp( + E_D_s / (pybamm.constants.R * 296) + ) return D_ref * arrhenius + def graphite_ocp_Ecker2015_function(sto): """ Graphite OCP as a function of stochiometry [1, 2, 3]. @@ -97,6 +100,7 @@ def graphite_ocp_Ecker2015_function(sto): return u_eq + def graphite_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in @@ -134,15 +138,20 @@ def graphite_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_m k_ref = 1.11 * 1e-10 # multiply by Faraday's constant to get correct units - m_ref = pybamm.constants.F * k_ref # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = ( + pybamm.constants.F * k_ref + ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 53400 - arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp(E_r / (pybamm.constants.R * 296.15)) + arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp( + E_r / (pybamm.constants.R * 296.15) + ) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def nco_diffusivity_Ecker2015(sto, T): """ NCO diffusivity as a function of stochiometry [1, 2, 3]. @@ -174,10 +183,13 @@ def nco_diffusivity_Ecker2015(sto, T): D_ref = 3.7e-13 - 3.4e-13 * pybamm.exp(-12 * (sto - 0.62) * (sto - 0.62)) E_D_s = 8.06e4 - arrhenius = pybamm.exp(-E_D_s / (pybamm.constants.R * T)) * pybamm.exp(E_D_s / (pybamm.constants.R * 296.15)) + arrhenius = pybamm.exp(-E_D_s / (pybamm.constants.R * T)) * pybamm.exp( + E_D_s / (pybamm.constants.R * 296.15) + ) return D_ref * arrhenius + def nco_ocp_Ecker2015_function(sto): """ NCO OCP as a function of stochiometry [1, 2, 3]. @@ -233,6 +245,7 @@ def nco_ocp_Ecker2015_function(sto): ) return u_eq + def nco_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NCO and LiPF6 in @@ -270,15 +283,20 @@ def nco_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_max, T k_ref = 3.01e-11 # multiply by Faraday's constant to get correct units - m_ref = pybamm.constants.F * k_ref # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = ( + pybamm.constants.F * k_ref + ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 4.36e4 - arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp(E_r / (pybamm.constants.R * 296.15)) + arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp( + E_r / (pybamm.constants.R * 296.15) + ) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def electrolyte_diffusivity_Ecker2015(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration [1, 2, 3]. @@ -310,12 +328,20 @@ def electrolyte_diffusivity_Ecker2015(c_e, T): # The diffusivity epends on the electrolyte conductivity inputs = {"Electrolyte concentration [mol.m-3]": c_e, "Temperature [K]": T} - sigma_e = pybamm.Functionpybamm.Parameter("Electrolyte conductivity [S.m-1]", inputs) + sigma_e = pybamm.Functionpybamm.Parameter( + "Electrolyte conductivity [S.m-1]", inputs + ) - D_c_e = (pybamm.constants.k_b / (pybamm.constants.F * pybamm.constants.q_e)) * sigma_e * T / c_e + D_c_e = ( + (pybamm.constants.k_b / (pybamm.constants.F * pybamm.constants.q_e)) + * sigma_e + * T + / c_e + ) return D_c_e + def electrolyte_conductivity_Ecker2015(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration [1, 2, 3]. @@ -358,67 +384,177 @@ def electrolyte_conductivity_Ecker2015(c_e, T): return sigma_e -measured_graphite_diffusivity_Ecker2015_filename = pybamm.get_parameters_filepath('pybamm/input/parameters/lithium_ion/measured_graphite_diffusivity_Ecker2015.csv') -measured_graphite_diffusivity_Ecker2015 = np.loadtxt(measured_graphite_diffusivity_Ecker2015_filename, delimiter=',') -graphite_ocp_Ecker2015_filename = pybamm.get_parameters_filepath('pybamm/input/parameters/lithium_ion/graphite_ocp_Ecker2015.csv') -graphite_ocp_Ecker2015 = np.loadtxt(graphite_ocp_Ecker2015_filename, delimiter=',') -measured_nco_diffusivity_Ecker2015_filename = pybamm.get_parameters_filepath('pybamm/input/parameters/lithium_ion/measured_nco_diffusivity_Ecker2015.csv') -measured_nco_diffusivity_Ecker2015 = np.loadtxt(measured_nco_diffusivity_Ecker2015_filename, delimiter=',') -nco_ocp_Ecker2015_filename = pybamm.get_parameters_filepath('pybamm/input/parameters/lithium_ion/nco_ocp_Ecker2015.csv') -nco_ocp_Ecker2015 = np.loadtxt(nco_ocp_Ecker2015_filename, delimiter=',') +measured_graphite_diffusivity_Ecker2015_filename = pybamm.get_parameters_filepath( + "pybamm/input/parameters/lithium_ion/measured_graphite_diffusivity_Ecker2015.csv" +) +measured_graphite_diffusivity_Ecker2015 = pd.read_csv( + measured_graphite_diffusivity_Ecker2015_filename, comment="#" +) +graphite_ocp_Ecker2015_filename = pybamm.get_parameters_filepath( + "pybamm/input/parameters/lithium_ion/graphite_ocp_Ecker2015.csv" +) +graphite_ocp_Ecker2015 = pd.read_csv(graphite_ocp_Ecker2015_filename, comment="#") +measured_nco_diffusivity_Ecker2015_filename = pybamm.get_parameters_filepath( + "pybamm/input/parameters/lithium_ion/measured_nco_diffusivity_Ecker2015.csv" +) +measured_nco_diffusivity_Ecker2015 = pd.read_csv( + measured_nco_diffusivity_Ecker2015_filename, comment="#" +) +nco_ocp_Ecker2015_filename = pybamm.get_parameters_filepath( + "pybamm/input/parameters/lithium_ion/nco_ocp_Ecker2015.csv" +) +nco_ocp_Ecker2015 = pd.read_csv(nco_ocp_Ecker2015_filename, comment="#") + +# Call dict via a function to avoid errors when editing in place def get_parameter_values(): + """ + # Ecker2015 parameter set + # Kokam SLPB 75106100 cell parameters + + Parameters for a Kokam SLPB 75106100 cell, from the papers + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery I. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The tab placement parameters are taken from measurements in + + > Hales, Alastair, et al. "The cell cooling coefficient: a standard to define heat + rejection from lithium-ion batteries." Journal of The Electrochemical Society 166.12 + (2019): A2383. + + The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data + are extracted from + + > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and + surface cooling on lithium ion cell performance."" Journal of The Electrochemical + Society, 165.13 (2018): A3169-A3178. + # Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the papers: + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery I. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The fits to data for the electrode and electrolyte properties are those provided + by Dr. Simon O’Kane in the paper: + + > Richardson, Giles, et. al. "Generalised single particle models for high-rate + operation of graded lithium-ion electrodes: Systematic derivation and validation." + Electrochemica Acta 339 (2020): 135862 + + The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data + are extracted from + + > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and + surface cooling on lithium ion cell performance."" Journal of The Electrochemical + Society, 165.13 (2018): A3169-A3178. + # Separator parameters + + Parameters for the separator from the papers + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery i. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data + are extracted from + + > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and + surface cooling on lithium ion cell performance."" Journal of The Electrochemical + Society, 165.13 (2018): A3169-A3178. + # Lithium Nickel Cobalt Oxide positive electrode parameters + + Parameters for a Lithium Nickel Cobalt Oxide positive electrode, from the papers + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery i. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The fits to data for the electrode and electrolyte properties are those provided + by Dr. Simon O’Kane in the paper: + + > Richardson, Giles, et. al. "Generalised single particle models for high-rate + operation of graded lithium-ion electrodes: Systematic derivation and validation." + Electrochemica Acta 339 (2020): 135862 + + The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data + are extracted from + + > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and + surface cooling on lithium ion cell performance."" Journal of The Electrochemical + Society, 165.13 (2018): A3169-A3178. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the papers + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery i. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The fits to data for the electrode and electrolyte properties are those provided + by Dr. Simon O’Kane in the paper: + + > Richardson, Giles, et. al. "Generalised single particle models for high-rate + operation of graded lithium-ion electrodes: Systematic derivation and validation." + Electrochemica Acta 339 (2020): 135862 + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857.. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + Development of first principles capacity fade model for Li-ion cells. Journal of the + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. + > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. + """ + return { - # Negative electrode - "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, - "Negative electrode thickness [m]": 7.4e-05, - "Negative electrode conductivity [S.m-1]": 14.0, - "Maximum concentration in negative electrode [mol.m-3]": 31920.0, - "Measured negative electrode diffusivity [m2.s-1]": ('measured_graphite_diffusivity_Ecker2015', measured_graphite_diffusivity_Ecker2015), - "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_Ecker2015, - "Measured negative electrode OCP [V]": ('graphite_ocp_Ecker2015', graphite_ocp_Ecker2015), - "Negative electrode OCP [V]": graphite_ocp_Ecker2015_function, - "Negative electrode porosity": 0.329, - "Negative electrode active material volume fraction": 0.372403, - "Negative electrode Bruggeman coefficient (electrolyte)": 1.6372789338386007, - "Negative electrode Bruggeman coefficient (electrode)": 0.0, - "Negative electrode cation signed stoichiometry": -1.0, - "Negative electrode electrons in reaction": 1.0, - "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_Ecker2015, - "Negative electrode density [kg.m-3]": 1555.0, - "Negative electrode specific heat capacity [J.kg-1.K-1]": 1437.0, - "Negative electrode thermal conductivity [W.m-1.K-1]": 1.58, - "Negative electrode OCP entropic change [V.K-1]": 0.0, - "Initial concentration in negative electrode [mol.m-3]": 26120.05, - # Separator - "Separator thickness [m]": 2e-05, - "Separator porosity": 0.508, - "Separator Bruggeman coefficient (electrolyte)": 1.9804586773134945, - "Separator density [kg.m-3]": 1017.0, - "Separator specific heat capacity [J.kg-1.K-1]": 1978.0, - "Separator thermal conductivity [W.m-1.K-1]": 0.34, - # Positive electrode - "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, - "Positive electrode thickness [m]": 5.4e-05, - "Positive electrode conductivity [S.m-1]": 68.1, - "Maximum concentration in positive electrode [mol.m-3]": 48580.0, - "Measured positive electrode diffusivity [m2.s-1]": ('measured_nco_diffusivity_Ecker2015', measured_nco_diffusivity_Ecker2015), - "Positive electrode diffusivity [m2.s-1]": nco_diffusivity_Ecker2015, - "Measured positive electrode OCP [V]": ('nco_ocp_Ecker2015', nco_ocp_Ecker2015), - "Positive electrode OCP [V]": nco_ocp_Ecker2015_function, - "Positive electrode porosity": 0.296, - "Positive electrode active material volume fraction": 0.40832, - "Positive electrode Bruggeman coefficient (electrolyte)": 1.5442267190786427, - "Positive electrode Bruggeman coefficient (electrode)": 0.0, - "Positive electrode exchange-current density [A.m-2]": nco_electrolyte_exchange_current_density_Ecker2015, - "Positive electrode cation signed stoichiometry": -1.0, - "Positive electrode electrons in reaction": 1.0, - "Positive electrode density [kg.m-3]": 2895.0, - "Positive electrode specific heat capacity [J.kg-1.K-1]": 1270.0, - "Positive electrode thermal conductivity [W.m-1.K-1]": 1.04, - "Positive electrode OCP entropic change [V.K-1]": 0.0, - "Initial concentration in positive electrode [mol.m-3]": 12630.8, - # Other + # sei "Ratio of lithium moles to SEI moles": 2.0, "Inner SEI reaction proportion": 0.5, "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, @@ -439,7 +575,13 @@ def get_parameter_values(): "SEI kinetic rate constant [m.s-1]": 1e-12, "SEI open-circuit potential [V]": 0.4, "SEI growth activation energy [J.mol-1]": 0.0, + "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + # cell "Negative current collector thickness [m]": 1.4e-05, + "Negative electrode thickness [m]": 7.4e-05, + "Separator thickness [m]": 2e-05, + "Positive electrode thickness [m]": 5.4e-05, "Positive current collector thickness [m]": 1.5e-05, "Electrode height [m]": 0.101, "Electrode width [m]": 0.085, @@ -462,14 +604,67 @@ def get_parameter_values(): "Nominal cell capacity [A.h]": 0.15625, "Typical current [A]": 0.15652, "Current function [A]": 0.15652, + # negative electrode + "Negative electrode conductivity [S.m-1]": 14.0, + "Maximum concentration in negative electrode [mol.m-3]": 31920.0, + "Measured negative electrode diffusivity [m2.s-1]": ( + "measured_graphite_diffusivity_Ecker2015", + measured_graphite_diffusivity_Ecker2015, + ), + "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_Ecker2015, + "Measured negative electrode OCP [V]": ( + "graphite_ocp_Ecker2015", + graphite_ocp_Ecker2015, + ), + "Negative electrode OCP [V]": graphite_ocp_Ecker2015_function, + "Negative electrode porosity": 0.329, + "Negative electrode active material volume fraction": 0.372403, "Negative particle radius [m]": 1.37e-05, + "Negative electrode Bruggeman coefficient (electrolyte)": 1.6372789338386007, + "Negative electrode Bruggeman coefficient (electrode)": 0.0, + "Negative electrode cation signed stoichiometry": -1.0, + "Negative electrode electrons in reaction": 1.0, + "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_Ecker2015, + "Negative electrode density [kg.m-3]": 1555.0, + "Negative electrode specific heat capacity [J.kg-1.K-1]": 1437.0, + "Negative electrode thermal conductivity [W.m-1.K-1]": 1.58, + "Negative electrode OCP entropic change [V.K-1]": 0.0, + # positive electrode + "Positive electrode conductivity [S.m-1]": 68.1, + "Maximum concentration in positive electrode [mol.m-3]": 48580.0, + "Measured positive electrode diffusivity [m2.s-1]": ( + "measured_nco_diffusivity_Ecker2015", + measured_nco_diffusivity_Ecker2015, + ), + "Positive electrode diffusivity [m2.s-1]": nco_diffusivity_Ecker2015, + "Measured positive electrode OCP [V]": ("nco_ocp_Ecker2015", nco_ocp_Ecker2015), + "Positive electrode OCP [V]": nco_ocp_Ecker2015_function, + "Positive electrode porosity": 0.296, + "Positive electrode active material volume fraction": 0.40832, "Positive particle radius [m]": 6.5e-06, + "Positive electrode Bruggeman coefficient (electrolyte)": 1.5442267190786427, + "Positive electrode Bruggeman coefficient (electrode)": 0.0, + "Positive electrode exchange-current density [A.m-2]": nco_electrolyte_exchange_current_density_Ecker2015, + "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode electrons in reaction": 1.0, + "Positive electrode density [kg.m-3]": 2895.0, + "Positive electrode specific heat capacity [J.kg-1.K-1]": 1270.0, + "Positive electrode thermal conductivity [W.m-1.K-1]": 1.04, + "Positive electrode OCP entropic change [V.K-1]": 0.0, + # separator + "Separator porosity": 0.508, + "Separator Bruggeman coefficient (electrolyte)": 1.9804586773134945, + "Separator density [kg.m-3]": 1017.0, + "Separator specific heat capacity [J.kg-1.K-1]": 1978.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.34, + # electrolyte "Typical electrolyte concentration [mol.m-3]": 1000.0, "Initial concentration in electrolyte [mol.m-3]": 1000.0, "Cation transference number": 0.26, "1 + dlnf/dlnc": 1.0, "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Ecker2015, "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Ecker2015, + # experiment "Reference temperature [K]": 296.15, "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 10.0, "Positive current collector surface heat transfer coefficient [W.m-2.K-1]": 10.0, @@ -482,5 +677,15 @@ def get_parameter_values(): "Number of cells connected in series to make a battery": 1.0, "Lower voltage cut-off [V]": 2.5, "Upper voltage cut-off [V]": 4.2, + "Initial concentration in negative electrode [mol.m-3]": 26120.05, + "Initial concentration in positive electrode [mol.m-3]": 12630.8, "Initial temperature [K]": 298.15, - } \ No newline at end of file + # citations + "citations": [ + "Ecker2015i", + "Ecker2015ii", + "Zhao2018", + "Hales2019", + "Richardson2020", + ], + } diff --git a/pybamm/input/parameters/lithium_ion/Marquis2019.py b/pybamm/input/parameters/lithium_ion/Marquis2019.py index 149d657be3..de6378bb1f 100644 --- a/pybamm/input/parameters/lithium_ion/Marquis2019.py +++ b/pybamm/input/parameters/lithium_ion/Marquis2019.py @@ -29,6 +29,7 @@ def graphite_mcmb2528_diffusivity_Dualfoil1998(sto, T): return D_ref * arrhenius + def graphite_mcmb2528_ocp_Dualfoil1998(sto): """ Graphite MCMB 2528 Open Circuit Potential (OCP) as a function of the @@ -56,6 +57,7 @@ def graphite_mcmb2528_ocp_Dualfoil1998(sto): return u_eq + def graphite_electrolyte_exchange_current_density_Dualfoil1998( c_e, c_s_surf, c_s_max, T ): @@ -91,6 +93,7 @@ def graphite_electrolyte_exchange_current_density_Dualfoil1998( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def graphite_entropic_change_Moura2016(sto, c_s_max): """ Graphite entropic change in open circuit potential (OCP) at a temperature of @@ -121,6 +124,7 @@ def graphite_entropic_change_Moura2016(sto, c_s_max): return du_dT + def lico2_diffusivity_Dualfoil1998(sto, T): """ LiCo2 diffusivity as a function of stochiometry, in this case the @@ -148,6 +152,7 @@ def lico2_diffusivity_Dualfoil1998(sto, T): return D_ref * arrhenius + def lico2_ocp_Dualfoil1998(sto): """ Lithium Cobalt Oxide (LiCO2) Open Circuit Potential (OCP) as a a function of the @@ -185,6 +190,7 @@ def lico2_ocp_Dualfoil1998(sto): return u_eq + def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between lico2 and LiPF6 in @@ -218,6 +224,7 @@ def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def lico2_entropic_change_Moura2016(sto, c_s_max): """ Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at @@ -239,16 +246,22 @@ def lico2_entropic_change_Moura2016(sto, c_s_max): sto = stretch * sto du_dT = ( - 0.07645 * (-54.4806 / c_s_max) * ((1.0 / pybamm.cosh(30.834 - 54.4806 * sto)) ** 2) + 0.07645 + * (-54.4806 / c_s_max) + * ((1.0 / pybamm.cosh(30.834 - 54.4806 * sto)) ** 2) + 2.1581 * (-50.294 / c_s_max) * ((pybamm.cosh(52.294 - 50.294 * sto)) ** (-2)) - + 0.14169 * (19.854 / c_s_max) * ((pybamm.cosh(11.0923 - 19.8543 * sto)) ** (-2)) + + 0.14169 + * (19.854 / c_s_max) + * ((pybamm.cosh(11.0923 - 19.8543 * sto)) ** (-2)) - 0.2051 * (5.4888 / c_s_max) * ((pybamm.cosh(1.4684 - 5.4888 * sto)) ** (-2)) - - (0.2531 / 0.1316 / c_s_max) * ((pybamm.cosh((-sto + 0.56478) / 0.1316)) ** (-2)) + - (0.2531 / 0.1316 / c_s_max) + * ((pybamm.cosh((-sto + 0.56478) / 0.1316)) ** (-2)) - (0.02167 / 0.006 / c_s_max) * ((pybamm.cosh((sto - 0.525) / 0.006)) ** (-2)) ) return du_dT + def electrolyte_diffusivity_Capiglia1999(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. The original data @@ -281,6 +294,7 @@ def electrolyte_diffusivity_Capiglia1999(c_e, T): return D_c_e * arrhenius + def electrolyte_conductivity_Capiglia1999(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration. The original @@ -320,58 +334,98 @@ def electrolyte_conductivity_Capiglia1999(c_e, T): return sigma_e * arrhenius +# Call dict via a function to avoid errors when editing in place def get_parameter_values(): + """ + # Marquis2019 parameter set + # Kokam SLPB78205130H cell parameters + + Parameters for a Kokam SLPB78205130H cell, from the paper + + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An + asymptotic derivation of a single particle model with electrolyte”. [Journal of The + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # Graphite MCMB 2528 negative electrode parameters + + Parameters for a graphite MCMB 2528 negative electrode, from the paper + + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An + asymptotic derivation of a single particle model with electrolyte”. [Journal of The + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # Separator parameters + + Parameters for the separator in the paper + + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An + asymptotic derivation of a single particle model with electrolyte”. [Journal of The + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # Lithium Cobalt Oxide positive electrode parameters + + Parameters for a lithium Cobalt Oxide positive electrode, from the paper + + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An + asymptotic derivation of a single particle model with electrolyte”. [Journal of The + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An + asymptotic derivation of a single particle model with electrolyte”. [Journal of The + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An + asymptotic derivation of a single particle model with electrolyte”. [Journal of The + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + Development of first principles capacity fade model for Li-ion cells. Journal of the + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. + > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. + """ + return { - # Negative electrode - "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, - "Negative electrode thickness [m]": 0.0001, - "Negative electrode conductivity [S.m-1]": 100.0, - "Maximum concentration in negative electrode [mol.m-3]": 24983.2619938437, - "Negative electrode diffusivity [m2.s-1]": graphite_mcmb2528_diffusivity_Dualfoil1998, - "Negative electrode OCP [V]": graphite_mcmb2528_ocp_Dualfoil1998, - "Negative electrode porosity": 0.3, - "Negative electrode active material volume fraction": 0.6, - "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, - "Negative electrode Bruggeman coefficient (electrode)": 1.5, - "Negative electrode cation signed stoichiometry": -1.0, - "Negative electrode electrons in reaction": 1.0, - "Negative electrode charge transfer coefficient": 0.5, - "Negative electrode double-layer capacity [F.m-2]": 0.2, - "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_Dualfoil1998, - "Negative electrode density [kg.m-3]": 1657.0, - "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, - "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, - "Negative electrode OCP entropic change [V.K-1]": graphite_entropic_change_Moura2016, - "Initial concentration in negative electrode [mol.m-3]": 19986.609595075, - # Separator - "Separator thickness [m]": 2.5e-05, - "Separator porosity": 1.0, - "Separator Bruggeman coefficient (electrolyte)": 1.5, - "Separator density [kg.m-3]": 397.0, - "Separator specific heat capacity [J.kg-1.K-1]": 700.0, - "Separator thermal conductivity [W.m-1.K-1]": 0.16, - # Positive electrode - "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, - "Positive electrode thickness [m]": 0.0001, - "Positive electrode conductivity [S.m-1]": 10.0, - "Maximum concentration in positive electrode [mol.m-3]": 51217.9257309275, - "Positive electrode diffusivity [m2.s-1]": lico2_diffusivity_Dualfoil1998, - "Positive electrode OCP [V]": lico2_ocp_Dualfoil1998, - "Positive electrode porosity": 0.3, - "Positive electrode active material volume fraction": 0.5, - "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, - "Positive electrode Bruggeman coefficient (electrode)": 1.5, - "Positive electrode cation signed stoichiometry": -1.0, - "Positive electrode electrons in reaction": 1.0, - "Positive electrode charge transfer coefficient": 0.5, - "Positive electrode double-layer capacity [F.m-2]": 0.2, - "Positive electrode exchange-current density [A.m-2]": lico2_electrolyte_exchange_current_density_Dualfoil1998, - "Positive electrode density [kg.m-3]": 3262.0, - "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, - "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, - "Positive electrode OCP entropic change [V.K-1]": lico2_entropic_change_Moura2016, - "Initial concentration in positive electrode [mol.m-3]": 30730.7554385565, - # Other + # sei "Ratio of lithium moles to SEI moles": 2.0, "Inner SEI reaction proportion": 0.5, "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, @@ -392,7 +446,13 @@ def get_parameter_values(): "SEI kinetic rate constant [m.s-1]": 1e-12, "SEI open-circuit potential [V]": 0.4, "SEI growth activation energy [J.mol-1]": 0.0, + "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + # cell "Negative current collector thickness [m]": 2.5e-05, + "Negative electrode thickness [m]": 0.0001, + "Separator thickness [m]": 2.5e-05, + "Positive electrode thickness [m]": 0.0001, "Positive current collector thickness [m]": 2.5e-05, "Electrode height [m]": 0.137, "Electrode width [m]": 0.207, @@ -415,14 +475,58 @@ def get_parameter_values(): "Nominal cell capacity [A.h]": 0.680616, "Typical current [A]": 0.680616, "Current function [A]": 0.680616, + # negative electrode + "Negative electrode conductivity [S.m-1]": 100.0, + "Maximum concentration in negative electrode [mol.m-3]": 24983.2619938437, + "Negative electrode diffusivity [m2.s-1]": graphite_mcmb2528_diffusivity_Dualfoil1998, + "Negative electrode OCP [V]": graphite_mcmb2528_ocp_Dualfoil1998, + "Negative electrode porosity": 0.3, + "Negative electrode active material volume fraction": 0.6, "Negative particle radius [m]": 1e-05, + "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, + "Negative electrode Bruggeman coefficient (electrode)": 1.5, + "Negative electrode cation signed stoichiometry": -1.0, + "Negative electrode electrons in reaction": 1.0, + "Negative electrode charge transfer coefficient": 0.5, + "Negative electrode double-layer capacity [F.m-2]": 0.2, + "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_Dualfoil1998, + "Negative electrode density [kg.m-3]": 1657.0, + "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, + "Negative electrode OCP entropic change [V.K-1]": graphite_entropic_change_Moura2016, + # positive electrode + "Positive electrode conductivity [S.m-1]": 10.0, + "Maximum concentration in positive electrode [mol.m-3]": 51217.9257309275, + "Positive electrode diffusivity [m2.s-1]": lico2_diffusivity_Dualfoil1998, + "Positive electrode OCP [V]": lico2_ocp_Dualfoil1998, + "Positive electrode porosity": 0.3, + "Positive electrode active material volume fraction": 0.5, "Positive particle radius [m]": 1e-05, + "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, + "Positive electrode Bruggeman coefficient (electrode)": 1.5, + "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode electrons in reaction": 1.0, + "Positive electrode charge transfer coefficient": 0.5, + "Positive electrode double-layer capacity [F.m-2]": 0.2, + "Positive electrode exchange-current density [A.m-2]": lico2_electrolyte_exchange_current_density_Dualfoil1998, + "Positive electrode density [kg.m-3]": 3262.0, + "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, + "Positive electrode OCP entropic change [V.K-1]": lico2_entropic_change_Moura2016, + # separator + "Separator porosity": 1.0, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator density [kg.m-3]": 397.0, + "Separator specific heat capacity [J.kg-1.K-1]": 700.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.16, + # electrolyte "Typical electrolyte concentration [mol.m-3]": 1000.0, "Initial concentration in electrolyte [mol.m-3]": 1000.0, "Cation transference number": 0.4, "1 + dlnf/dlnc": 1.0, "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Capiglia1999, "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Capiglia1999, + # experiment "Reference temperature [K]": 298.15, "Ambient temperature [K]": 298.15, "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, @@ -435,5 +539,9 @@ def get_parameter_values(): "Number of cells connected in series to make a battery": 1.0, "Lower voltage cut-off [V]": 3.105, "Upper voltage cut-off [V]": 4.1, + "Initial concentration in negative electrode [mol.m-3]": 19986.609595075, + "Initial concentration in positive electrode [mol.m-3]": 30730.7554385565, "Initial temperature [K]": 298.15, - } \ No newline at end of file + # citations + "citations": ["Marquis2019"], + } diff --git a/pybamm/input/parameters/lithium_ion/Mohtat2020.py b/pybamm/input/parameters/lithium_ion/Mohtat2020.py index 4c3bbd3027..54916c2e99 100644 --- a/pybamm/input/parameters/lithium_ion/Mohtat2020.py +++ b/pybamm/input/parameters/lithium_ion/Mohtat2020.py @@ -29,6 +29,7 @@ def graphite_diffusivity_PeymanMPM(sto, T): return D_ref * arrhenius + def graphite_ocp_PeymanMPM(sto): """ Graphite Open Circuit Potential (OCP) as a function of the @@ -52,6 +53,7 @@ def graphite_ocp_PeymanMPM(sto): return u_eq + def graphite_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in @@ -87,6 +89,7 @@ def graphite_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def graphite_entropic_change_PeymanMPM(sto, c_s_max): """ Graphite entropic change in open circuit potential (OCP) at a temperature of @@ -116,6 +119,7 @@ def graphite_entropic_change_PeymanMPM(sto, c_s_max): return du_dT + def NMC_diffusivity_PeymanMPM(sto, T): """ NMC diffusivity as a function of stochiometry, in this case the @@ -144,6 +148,7 @@ def NMC_diffusivity_PeymanMPM(sto, T): return D_ref * arrhenius + def NMC_ocp_PeymanMPM(sto): """ Nickel Managanese Cobalt Oxide (NMC) Open Circuit Potential (OCP) as a @@ -172,6 +177,7 @@ def NMC_ocp_PeymanMPM(sto): return u_eq + def NMC_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -205,6 +211,7 @@ def NMC_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_max, T m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def NMC_entropic_change_PeymanMPM(sto, c_s_max): """ Nickel Manganese Cobalt (NMC) entropic change in open circuit potential (OCP) at @@ -242,6 +249,7 @@ def NMC_entropic_change_PeymanMPM(sto, c_s_max): return du_dT + def electrolyte_diffusivity_PeymanMPM(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. The original data @@ -274,6 +282,7 @@ def electrolyte_diffusivity_PeymanMPM(c_e, T): return D_c_e * arrhenius + def electrolyte_conductivity_PeymanMPM(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration. The original @@ -306,69 +315,50 @@ def electrolyte_conductivity_PeymanMPM(c_e, T): return sigma_e * arrhenius +# Call dict via a function to avoid errors when editing in place def get_parameter_values(): + """ + # Mohtat2020 parameter set + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + Development of first principles capacity fade model for Li-ion cells. Journal of the + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. + > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. + # SEI parameters + + Parameters for lithium plating from the paper: + + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + """ + return { - # Negative electrode - "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, - "Negative electrode thickness [m]": 6.2e-05, - "Negative electrode conductivity [S.m-1]": 100.0, - "Maximum concentration in negative electrode [mol.m-3]": 28746.0, - "Negative electrode diffusion coefficient [m2.s-1]": 5e-15, - "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_PeymanMPM, - "Negative electrode OCP [V]": graphite_ocp_PeymanMPM, - "Negative electrode porosity": 0.3, - "Negative electrode active material volume fraction": 0.61, - "Negative electrode Bruggeman coefficient (electrode)": 1.5, - "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, - "Negative electrode transport efficiency": 0.16, - "Negative electrode cation signed stoichiometry": -1.0, - "Negative electrode electrons in reaction": 1.0, - "Negative electrode reference exchange-current density [A.m-2(m3.mol)1.5]": 1.061e-06, - "Negative electrode charge transfer coefficient": 0.5, - "Negative electrode double-layer capacity [F.m-2]": 0.2, - "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_PeymanMPM, - "Negative electrode density [kg.m-3]": 3100.0, - "Negative electrode specific heat capacity [J.kg-1.K-1]": 1100.0, - "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, - "Negative electrode OCP entropic change [V.K-1]": graphite_entropic_change_PeymanMPM, - "Initial concentration in negative electrode [mol.m-3]": 48.8682, - # Separator - "Separator thickness [m]": 1.2e-05, - "Separator porosity": 0.4, - "Separator Bruggeman coefficient (electrolyte)": 1.5, - "Separator density [kg.m-3]": 397.0, - "Separator specific heat capacity [J.kg-1.K-1]": 700.0, - "Separator thermal conductivity [W.m-1.K-1]": 0.16, - "Separator transport efficiency ": 0.25, - # Positive electrode - "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, - "Positive electrode thickness [m]": 6.7e-05, - "Positive electrode conductivity [S.m-1]": 100.0, - "Maximum concentration in positive electrode [mol.m-3]": 35380.0, - "Positive electrode diffusivity [m2.s-1]": NMC_diffusivity_PeymanMPM, - "Positive electrode OCP [V]": NMC_ocp_PeymanMPM, - "Positive electrode porosity": 0.3, - "Positive electrode active material volume fraction": 0.445, - "Positive electrode Bruggeman coefficient (electrode)": 1.5, - "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, - "Positive electrode transport efficiency": 0.16, - "Positive electrode cation signed stoichiometry": -1.0, - "Positive electrode electrons in reaction": 1.0, - "Positive electrode reference exchange-current density [A.m-2(m3.mol)1.5]": 4.824e-06, - "Positive electrode charge transfer coefficient": 0.5, - "Positive electrode double-layer capacity [F.m-2]": 0.2, - "Positive electrode exchange-current density [A.m-2]": NMC_electrolyte_exchange_current_density_PeymanMPM, - "Positive electrode density [kg.m-3]": 3100.0, - "Positive electrode specific heat capacity [J.kg-1.K-1]": 1100.0, - "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, - "Positive electrode OCP entropic change [V.K-1]": NMC_entropic_change_PeymanMPM, - "Initial concentration in positive electrode [mol.m-3]": 31513.0, - # Other + # lithium plating "Lithium metal partial molar volume [m3.mol-1]": 1.3e-05, "Exchange-current density for plating [A.m-2]": 0.001, "Initial plated lithium concentration [mol.m-3]": 0.0, "Typical plated lithium concentration [mol.m-3]": 1000.0, "Lithium plating transfer coefficient": 0.7, + # sei "Ratio of lithium moles to SEI moles": 2.0, "Inner SEI reaction proportion": 0.5, "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, @@ -389,7 +379,13 @@ def get_parameter_values(): "SEI kinetic rate constant [m.s-1]": 1e-12, "SEI open-circuit potential [V]": 0.4, "SEI growth activation energy [J.mol-1]": 0.0, + "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + # cell "Negative current collector thickness [m]": 2.5e-05, + "Negative electrode thickness [m]": 6.2e-05, + "Separator thickness [m]": 1.2e-05, + "Positive electrode thickness [m]": 6.7e-05, "Positive current collector thickness [m]": 2.5e-05, "Electrode height [m]": 1.0, "Electrode width [m]": 0.205, @@ -406,8 +402,57 @@ def get_parameter_values(): "Nominal cell capacity [A.h]": 5.0, "Typical current [A]": 5.0, "Current function [A]": 5.0, + # negative electrode + "Negative electrode conductivity [S.m-1]": 100.0, + "Maximum concentration in negative electrode [mol.m-3]": 28746.0, + "Negative electrode diffusion coefficient [m2.s-1]": 5e-15, + "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_PeymanMPM, + "Negative electrode OCP [V]": graphite_ocp_PeymanMPM, + "Negative electrode porosity": 0.3, + "Negative electrode active material volume fraction": 0.61, "Negative particle radius [m]": 2.5e-06, + "Negative electrode Bruggeman coefficient (electrode)": 1.5, + "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, + "Negative electrode transport efficiency": 0.16, + "Negative electrode cation signed stoichiometry": -1.0, + "Negative electrode electrons in reaction": 1.0, + "Negative electrode reference exchange-current density [A.m-2(m3.mol)1.5]": 1.061e-06, + "Negative electrode charge transfer coefficient": 0.5, + "Negative electrode double-layer capacity [F.m-2]": 0.2, + "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_PeymanMPM, + "Negative electrode density [kg.m-3]": 3100.0, + "Negative electrode specific heat capacity [J.kg-1.K-1]": 1100.0, + "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, + "Negative electrode OCP entropic change [V.K-1]": graphite_entropic_change_PeymanMPM, + # positive electrode + "Positive electrode conductivity [S.m-1]": 100.0, + "Maximum concentration in positive electrode [mol.m-3]": 35380.0, + "Positive electrode diffusivity [m2.s-1]": NMC_diffusivity_PeymanMPM, + "Positive electrode OCP [V]": NMC_ocp_PeymanMPM, + "Positive electrode porosity": 0.3, + "Positive electrode active material volume fraction": 0.445, "Positive particle radius [m]": 3.5e-06, + "Positive electrode Bruggeman coefficient (electrode)": 1.5, + "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, + "Positive electrode transport efficiency": 0.16, + "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode electrons in reaction": 1.0, + "Positive electrode reference exchange-current density [A.m-2(m3.mol)1.5]": 4.824e-06, + "Positive electrode charge transfer coefficient": 0.5, + "Positive electrode double-layer capacity [F.m-2]": 0.2, + "Positive electrode exchange-current density [A.m-2]": NMC_electrolyte_exchange_current_density_PeymanMPM, + "Positive electrode density [kg.m-3]": 3100.0, + "Positive electrode specific heat capacity [J.kg-1.K-1]": 1100.0, + "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, + "Positive electrode OCP entropic change [V.K-1]": NMC_entropic_change_PeymanMPM, + # separator + "Separator porosity": 0.4, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator density [kg.m-3]": 397.0, + "Separator specific heat capacity [J.kg-1.K-1]": 700.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.16, + "Separator transport efficiency ": 0.25, + # electrolyte "Typical electrolyte concentration [mol.m-3]": 1000.0, "Initial concentration in electrolyte [mol.m-3]": 1000.0, "Cation transference number": 0.38, @@ -415,6 +460,7 @@ def get_parameter_values(): "Typical lithium ion diffusivity [m2.s-1]": 5.34e-10, "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_PeymanMPM, "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_PeymanMPM, + # experiment "Reference temperature [K]": 298.15, "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, "Positive current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, @@ -427,5 +473,9 @@ def get_parameter_values(): "Number of cells connected in series to make a battery": 1.0, "Lower voltage cut-off [V]": 2.8, "Upper voltage cut-off [V]": 4.2, + "Initial concentration in negative electrode [mol.m-3]": 48.8682, + "Initial concentration in positive electrode [mol.m-3]": 31513.0, "Initial temperature [K]": 298.15, - } \ No newline at end of file + # citations + "citations": ["Mohtat2020"], + } diff --git a/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py b/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py index cc5fce45f7..b5bdf7e782 100644 --- a/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py +++ b/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py @@ -1,5 +1,5 @@ import pybamm -import numpy as np +import pandas as pd def graphite_diffusivity_Kim2011(sto, T): @@ -32,6 +32,7 @@ def graphite_diffusivity_Kim2011(sto, T): return D_ref * arrhenius + def graphite_ocp_Kim2011(sto): """ Graphite Open Circuit Potential (OCP) as a function of the stochiometry [1]. @@ -59,6 +60,7 @@ def graphite_ocp_Kim2011(sto): return u_eq + def graphite_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in @@ -110,6 +112,7 @@ def graphite_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max * (c_s_max - c_s_surf) ** alpha ) + def nca_diffusivity_Kim2011(sto, T): """ NCA diffusivity as a function of stochiometry [1]. @@ -139,6 +142,7 @@ def nca_diffusivity_Kim2011(sto, T): return D_ref * arrhenius + def nca_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NCA and LiPF6 in EC:DMC @@ -187,6 +191,7 @@ def nca_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max, T): * (c_s_max - c_s_surf) ** alpha ) + def electrolyte_diffusivity_Kim2011(c_e, T): """ Diffusivity of LiPF6 in EC as a function of ion concentration from [1]. @@ -220,6 +225,7 @@ def electrolyte_diffusivity_Kim2011(c_e, T): return D_c_e + def electrolyte_conductivity_Kim2011(c_e, T): """ Conductivity of LiPF6 in EC as a function of ion concentration from [1]. @@ -253,61 +259,119 @@ def electrolyte_conductivity_Kim2011(c_e, T): return sigma_e -nca_ocp_Kim2011_data_filename = pybamm.get_parameters_filepath('pybamm/input/parameters/lithium_ion/nca_ocp_Kim2011_data.csv') -nca_ocp_Kim2011_data = np.loadtxt(nca_ocp_Kim2011_data_filename, delimiter=',') +nca_ocp_Kim2011_data_filename = pybamm.get_parameters_filepath( + "pybamm/input/parameters/lithium_ion/nca_ocp_Kim2011_data.csv" +) +nca_ocp_Kim2011_data = pd.read_csv(nca_ocp_Kim2011_data_filename, comment="#") + +# Call dict via a function to avoid errors when editing in place def get_parameter_values(): + """ + # NCA_Kim2011 parameter set + # Pouch cell parameters + + Parameters for a "Nominal Design" pouch cell, from the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + # Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + + Note, only an effective cell volumetric heat capacity is provided in the paper. We + therefore used the values for the density and specific heat capacity reported in the + Marquis2019 parameter set in each region and multiplied each density by the ratio + of the volumetric heat capacity provided in smith to the calculated value. This + ensures that the values produce the same effective cell volumetric heat capacity. + This works fine for thermal models that are averaged over the x-direction but not + for full (PDE in x direction) thermal models. We do the same for the planar + effective thermal conductivity. + # Separator parameters + + Parameters for the separator in the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + + and references therein. + + Note, only an effective cell volumetric heat capacity is provided in the paper. We + therefore used the values for the density and specific heat capacity reported in the + Marquis2019 parameter set in each region and multiplied each density by the ratio + of the volumetric heat capacity provided in smith to the calculated value. This + ensures that the values produce the same effective cell volumetric heat capacity. + This works fine for thermal models that are averaged over the x-direction but not + for full (PDE in x direction) thermal models. We do the same for the planar + effective thermal conductivity. + # Nickel Cobalt Aluminium (NCA) positive electrode parameters + + Parameters for an NCA positive electrode, from the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + + Note, only an effective cell volumetric heat capacity is provided in the paper. We + therefore used the values for the density and specific heat capacity reported in the + Marquis2019 parameter set in each region and multiplied each density by the ratio + of the volumetric heat capacity provided in smith to the calculated value. This + ensures that the values produce the same effective cell volumetric heat capacity. + This works fine for thermal models that are averaged over the x-direction but not + for full (PDE in x direction) thermal models. We do the same for the planar + effective thermal conductivity. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + Development of first principles capacity fade model for Li-ion cells. Journal of the + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. + > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. + """ + return { - # Negative electrode - "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, - "Negative electrode thickness [m]": 7e-05, - "Negative electrode conductivity [S.m-1]": 100.0, - "Maximum concentration in negative electrode [mol.m-3]": 28700.0, - "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_Kim2011, - "Negative electrode OCP [V]": graphite_ocp_Kim2011, - "Negative electrode porosity": 0.4, - "Negative electrode active material volume fraction": 0.51, - "Negative electrode Bruggeman coefficient (electrolyte)": 2.0, - "Negative electrode Bruggeman coefficient (electrode)": 2.0, - "Negative electrode cation signed stoichiometry": -1.0, - "Negative electrode electrons in reaction": 1.0, - "Negative electrode charge transfer coefficient": 0.5, - "Negative electrode double-layer capacity [F.m-2]": 0.2, - "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_Kim2011, - "Negative electrode density [kg.m-3]": 2136.43638, - "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, - "Negative electrode thermal conductivity [W.m-1.K-1]": 1.1339, - "Negative electrode OCP entropic change [V.K-1]": 0.0, - "Initial concentration in negative electrode [mol.m-3]": 18081.0, - # Separator - "Separator thickness [m]": 2.5e-05, - "Separator porosity": 0.4, - "Separator Bruggeman coefficient (electrolyte)": 2.0, - "Separator density [kg.m-3]": 511.86798, - "Separator specific heat capacity [J.kg-1.K-1]": 700.0, - "Separator thermal conductivity [W.m-1.K-1]": 0.10672, - # Positive electrode - "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, - "Positive electrode thickness [m]": 5e-05, - "Positive electrode conductivity [S.m-1]": 10.0, - "Maximum concentration in positive electrode [mol.m-3]": 49000.0, - "Positive electrode diffusivity [m2.s-1]": nca_diffusivity_Kim2011, - "Positive electrode OCP [V]": ('nca_ocp_Kim2011_data', nca_ocp_Kim2011_data), - "Positive electrode porosity": 0.4, - "Positive electrode active material volume fraction": 0.41, - "Positive electrode Bruggeman coefficient (electrolyte)": 2.0, - "Positive electrode Bruggeman coefficient (electrode)": 2.0, - "Positive electrode cation signed stoichiometry": -1.0, - "Positive electrode electrons in reaction": 1.0, - "Positive electrode charge transfer coefficient": 0.5, - "Positive electrode double-layer capacity [F.m-2]": 0.2, - "Positive electrode exchange-current density [A.m-2]": nca_electrolyte_exchange_current_density_Kim2011, - "Positive electrode density [kg.m-3]": 4205.82708, - "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, - "Positive electrode thermal conductivity [W.m-1.K-1]": 1.4007, - "Positive electrode OCP entropic change [V.K-1]": 0.0, - "Initial concentration in positive electrode [mol.m-3]": 20090.0, - # Other + # sei "Ratio of lithium moles to SEI moles": 2.0, "Inner SEI reaction proportion": 0.5, "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, @@ -328,7 +392,13 @@ def get_parameter_values(): "SEI kinetic rate constant [m.s-1]": 1e-12, "SEI open-circuit potential [V]": 0.4, "SEI growth activation energy [J.mol-1]": 0.0, + "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + # cell "Negative current collector thickness [m]": 1e-05, + "Negative electrode thickness [m]": 7e-05, + "Separator thickness [m]": 2.5e-05, + "Positive electrode thickness [m]": 5e-05, "Positive current collector thickness [m]": 1e-05, "Electrode height [m]": 0.2, "Electrode width [m]": 0.14, @@ -351,14 +421,58 @@ def get_parameter_values(): "Nominal cell capacity [A.h]": 0.43, "Typical current [A]": 0.43, "Current function [A]": 0.43, + # negative electrode + "Negative electrode conductivity [S.m-1]": 100.0, + "Maximum concentration in negative electrode [mol.m-3]": 28700.0, + "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_Kim2011, + "Negative electrode OCP [V]": graphite_ocp_Kim2011, + "Negative electrode porosity": 0.4, + "Negative electrode active material volume fraction": 0.51, "Negative particle radius [m]": 5.083e-07, + "Negative electrode Bruggeman coefficient (electrolyte)": 2.0, + "Negative electrode Bruggeman coefficient (electrode)": 2.0, + "Negative electrode cation signed stoichiometry": -1.0, + "Negative electrode electrons in reaction": 1.0, + "Negative electrode charge transfer coefficient": 0.5, + "Negative electrode double-layer capacity [F.m-2]": 0.2, + "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_Kim2011, + "Negative electrode density [kg.m-3]": 2136.43638, + "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Negative electrode thermal conductivity [W.m-1.K-1]": 1.1339, + "Negative electrode OCP entropic change [V.K-1]": 0.0, + # positive electrode + "Positive electrode conductivity [S.m-1]": 10.0, + "Maximum concentration in positive electrode [mol.m-3]": 49000.0, + "Positive electrode diffusivity [m2.s-1]": nca_diffusivity_Kim2011, + "Positive electrode OCP [V]": ("nca_ocp_Kim2011_data", nca_ocp_Kim2011_data), + "Positive electrode porosity": 0.4, + "Positive electrode active material volume fraction": 0.41, "Positive particle radius [m]": 1.633e-06, + "Positive electrode Bruggeman coefficient (electrolyte)": 2.0, + "Positive electrode Bruggeman coefficient (electrode)": 2.0, + "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode electrons in reaction": 1.0, + "Positive electrode charge transfer coefficient": 0.5, + "Positive electrode double-layer capacity [F.m-2]": 0.2, + "Positive electrode exchange-current density [A.m-2]": nca_electrolyte_exchange_current_density_Kim2011, + "Positive electrode density [kg.m-3]": 4205.82708, + "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Positive electrode thermal conductivity [W.m-1.K-1]": 1.4007, + "Positive electrode OCP entropic change [V.K-1]": 0.0, + # separator + "Separator porosity": 0.4, + "Separator Bruggeman coefficient (electrolyte)": 2.0, + "Separator density [kg.m-3]": 511.86798, + "Separator specific heat capacity [J.kg-1.K-1]": 700.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.10672, + # electrolyte "Typical electrolyte concentration [mol.m-3]": 1200.0, "Initial concentration in electrolyte [mol.m-3]": 1200.0, "Cation transference number": 0.4, "1 + dlnf/dlnc": 1.0, "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Kim2011, "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Kim2011, + # experiment "Reference temperature [K]": 298.15, "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, "Positive current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, @@ -371,5 +485,9 @@ def get_parameter_values(): "Number of cells connected in series to make a battery": 1.0, "Lower voltage cut-off [V]": 2.7, "Upper voltage cut-off [V]": 4.2, + "Initial concentration in negative electrode [mol.m-3]": 18081.0, + "Initial concentration in positive electrode [mol.m-3]": 20090.0, "Initial temperature [K]": 298.15, - } \ No newline at end of file + # citations + "citations": ["Kim2011"], + } diff --git a/pybamm/input/parameters/lithium_ion/OKane2022.py b/pybamm/input/parameters/lithium_ion/OKane2022.py index d931befc2a..b189aad745 100644 --- a/pybamm/input/parameters/lithium_ion/OKane2022.py +++ b/pybamm/input/parameters/lithium_ion/OKane2022.py @@ -1,5 +1,5 @@ import pybamm -import numpy as np +import pandas as pd def plating_exchange_current_density_OKane2020(c_e, c_Li, T): @@ -29,6 +29,7 @@ def plating_exchange_current_density_OKane2020(c_e, c_Li, T): return pybamm.constants.F * k_plating * c_e + def stripping_exchange_current_density_OKane2020(c_e, c_Li, T): """ Exchange-current density for Li stripping reaction [A.m-2]. @@ -62,6 +63,7 @@ def stripping_exchange_current_density_OKane2020(c_e, c_Li, T): return pybamm.constants.F * k_plating * c_Li + def SEI_limited_dead_lithium_OKane2022(L_sei): """ Decay rate for dead lithium formation [s-1]. @@ -90,6 +92,7 @@ def SEI_limited_dead_lithium_OKane2022(L_sei): return gamma + def graphite_LGM50_diffusivity_Chen2020(sto, T): """ LG M50 Graphite diffusivity as a function of stochiometry, in this case the @@ -122,6 +125,7 @@ def graphite_LGM50_diffusivity_Chen2020(sto, T): return D_ref * arrhenius + def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( c_e, c_s_surf, c_s_max, T ): @@ -161,6 +165,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def graphite_volume_change_Ai2020(sto, c_s_max): """ Graphite particle volume change as a function of stochiometry [1, 2]. @@ -209,6 +214,7 @@ def graphite_volume_change_Ai2020(sto, c_s_max): ) return t_change + def graphite_cracking_rate_Ai2020(T_dim): """ Graphite particle cracking rate as a function of temperature [1, 2]. @@ -239,6 +245,7 @@ def graphite_cracking_rate_Ai2020(T_dim): arrhenius = pybamm.exp(Eac_cr / pybamm.constants.R * (1 / T_dim - 1 / 298.15)) return k_cr * arrhenius + def nmc_LGM50_diffusivity_Chen2020(sto, T): """ NMC diffusivity as a function of stoichiometry, in this case the @@ -270,6 +277,7 @@ def nmc_LGM50_diffusivity_Chen2020(sto, T): return D_ref * arrhenius + def nmc_LGM50_ocp_Chen2020(sto): """ LG M50 NMC open circuit potential as a function of stochiometry, fit taken @@ -303,6 +311,7 @@ def nmc_LGM50_ocp_Chen2020(sto): return u_eq + def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -337,6 +346,7 @@ def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def volume_change_Ai2020(sto, c_s_max): """ Particle volume change as a function of stochiometry [1, 2]. @@ -365,6 +375,7 @@ def volume_change_Ai2020(sto, c_s_max): t_change = omega * c_s_max * sto return t_change + def cracking_rate_Ai2020(T_dim): """ Particle cracking rate as a function of temperature [1, 2]. @@ -395,6 +406,7 @@ def cracking_rate_Ai2020(T_dim): arrhenius = pybamm.exp(Eac_cr / pybamm.constants.R * (1 / T_dim - 1 / 298.15)) return k_cr * arrhenius + def electrolyte_diffusivity_Nyman2008_arrhenius(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -432,6 +444,7 @@ def electrolyte_diffusivity_Nyman2008_arrhenius(c_e, T): return D_c_e * arrhenius + def electrolyte_conductivity_Nyman2008_arrhenius(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -471,20 +484,184 @@ def electrolyte_conductivity_Nyman2008_arrhenius(c_e, T): return sigma_e * arrhenius -graphite_LGM50_ocp_Chen2020_filename = pybamm.get_parameters_filepath('pybamm/input/parameters/lithium_ion/graphite_LGM50_ocp_Chen2020.csv') -graphite_LGM50_ocp_Chen2020 = np.loadtxt(graphite_LGM50_ocp_Chen2020_filename, delimiter=',') +graphite_LGM50_ocp_Chen2020_filename = pybamm.get_parameters_filepath( + "pybamm/input/parameters/lithium_ion/graphite_LGM50_ocp_Chen2020.csv" +) +graphite_LGM50_ocp_Chen2020 = pd.read_csv( + graphite_LGM50_ocp_Chen2020_filename, comment="#" +) + +# Call dict via a function to avoid errors when editing in place def get_parameter_values(): + """ + # OKane2022 parameter set + # LG M50 cell parameters + + Parameters for an LG M50 cell, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # LG M50 Graphite anode parameters + + Parameters for an LG M50 graphite negative electrode, from the paper + + > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, + Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. + ["Lithium-ion battery degradation: how to model + it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical + Chemistry: Chemical Physics 24 (2022): 7909-7922 + + and references therein. + # Separator parameters + + Parameters for an LG M50 separator, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # NMC 811 positive electrode parameters + + Parameters for an LG M50 NMC 811 positive electrode, from the paper + + > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, + Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. + ["Lithium-ion battery degradation: how to model + it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical + Chemistry: Chemical Physics 24 (2022): 7909-7922 + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, + Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. + ["Lithium-ion battery degradation: how to model + it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical + Chemistry: Chemical Physics 24 (2022): 7909-7922 + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # SEI parameters + + Parameters for SEI growth from the paper + + > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, + Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. + ["Lithium-ion battery degradation: how to model + it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical + Chemistry: Chemical Physics 24 (2022): 7909-7922 + + and references therein. + + Note: this parameter set does not claim to be representative of the true parameter + values. These are merely the parameter values that were used in the referenced + papers. + # Lithium plating parameters + + Some example parameters for lithium plating from the paper: + + > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, + Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. + ["Lithium-ion battery degradation: how to model + it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical + Chemistry: Chemical Physics 24 (2022): 7909-7922 + + and references therein. + + Note: this parameter set does not claim to be representative of the true parameter + values. These are merely the parameter values that were used in the referenced + papers. + """ + return { - # Negative electrode + # lithium plating + "Lithium metal partial molar volume [m3.mol-1]": 1.3e-05, + "Lithium plating kinetic rate constant [m.s-1]": 1e-09, + "Exchange-current density for plating [A.m-2]": plating_exchange_current_density_OKane2020, + "Exchange-current density for stripping [A.m-2]": stripping_exchange_current_density_OKane2020, + "Initial plated lithium concentration [mol.m-3]": 0.0, + "Typical plated lithium concentration [mol.m-3]": 1000.0, + "Lithium plating transfer coefficient": 0.65, + "Dead lithium decay constant [s-1]": 1e-06, + "Dead lithium decay rate [s-1]": SEI_limited_dead_lithium_OKane2022, + # sei + "Ratio of lithium moles to SEI moles": 1.0, + "Inner SEI reaction proportion": 0.0, + "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, + "Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, + "SEI reaction exchange current density [A.m-2]": 1.5e-07, + "SEI resistivity [Ohm.m]": 200000.0, + "Outer SEI solvent diffusivity [m2.s-1]": 2.5000000000000002e-22, + "Bulk solvent concentration [mol.m-3]": 2636.0, + "Inner SEI open-circuit potential [V]": 0.1, + "Outer SEI open-circuit potential [V]": 0.8, + "Inner SEI electron conductivity [S.m-1]": 8.95e-14, + "Inner SEI lithium interstitial diffusivity [m2.s-1]": 1e-20, + "Lithium interstitial reference concentration [mol.m-3]": 15.0, + "Initial inner SEI thickness [m]": 0.0, + "Initial outer SEI thickness [m]": 5e-09, + "EC initial concentration in electrolyte [mol.m-3]": 4541.0, + "EC diffusivity [m2.s-1]": 2e-18, + "SEI kinetic rate constant [m.s-1]": 1e-12, + "SEI open-circuit potential [V]": 0.4, + "SEI growth activation energy [J.mol-1]": 38000.0, "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + # cell + "Negative current collector thickness [m]": 1.2e-05, "Negative electrode thickness [m]": 8.52e-05, + "Separator thickness [m]": 1.2e-05, + "Positive electrode thickness [m]": 7.56e-05, + "Positive current collector thickness [m]": 1.6e-05, + "Electrode height [m]": 0.065, + "Electrode width [m]": 1.58, + "Cell cooling surface area [m2]": 0.00531, + "Cell volume [m3]": 2.42e-05, + "Cell thermal expansion coefficient [m.K-1]": 1.1e-06, + "Negative current collector conductivity [S.m-1]": 58411000.0, + "Positive current collector conductivity [S.m-1]": 36914000.0, + "Negative current collector density [kg.m-3]": 8960.0, + "Positive current collector density [kg.m-3]": 2700.0, + "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, + "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, + "Negative current collector thermal conductivity [W.m-1.K-1]": 401.0, + "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, + "Nominal cell capacity [A.h]": 5.0, + "Typical current [A]": 5.0, + "Current function [A]": 5.0, + # negative electrode "Negative electrode conductivity [S.m-1]": 215.0, "Maximum concentration in negative electrode [mol.m-3]": 33133.0, "Negative electrode diffusivity [m2.s-1]": graphite_LGM50_diffusivity_Chen2020, - "Negative electrode OCP [V]": ('graphite_LGM50_ocp_Chen2020', graphite_LGM50_ocp_Chen2020), + "Negative electrode OCP [V]": ( + "graphite_LGM50_ocp_Chen2020", + graphite_LGM50_ocp_Chen2020, + ), "Negative electrode porosity": 0.25, "Negative electrode active material volume fraction": 0.75, + "Negative particle radius [m]": 5.86e-06, "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, "Negative electrode Bruggeman coefficient (electrode)": 1.5, "Negative electrode cation signed stoichiometry": -1.0, @@ -510,23 +687,14 @@ def get_parameter_values(): "Negative electrode LAM constant proportional term [s-1]": 2.7778e-07, "Negative electrode LAM constant exponential term": 2.0, "Negative electrode critical stress [Pa]": 60000000.0, - "Initial concentration in negative electrode [mol.m-3]": 29866.0, - # Separator - "Separator thickness [m]": 1.2e-05, - "Separator porosity": 0.47, - "Separator Bruggeman coefficient (electrolyte)": 1.5, - "Separator density [kg.m-3]": 397.0, - "Separator specific heat capacity [J.kg-1.K-1]": 700.0, - "Separator thermal conductivity [W.m-1.K-1]": 0.16, - # Positive electrode - "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, - "Positive electrode thickness [m]": 7.56e-05, + # positive electrode "Positive electrode conductivity [S.m-1]": 0.18, "Maximum concentration in positive electrode [mol.m-3]": 63104.0, "Positive electrode diffusivity [m2.s-1]": nmc_LGM50_diffusivity_Chen2020, "Positive electrode OCP [V]": nmc_LGM50_ocp_Chen2020, "Positive electrode porosity": 0.335, "Positive electrode active material volume fraction": 0.665, + "Positive particle radius [m]": 5.22e-06, "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, "Positive electrode Bruggeman coefficient (electrode)": 1.5, "Positive electrode cation signed stoichiometry": -1.0, @@ -552,63 +720,20 @@ def get_parameter_values(): "Positive electrode LAM constant proportional term [s-1]": 2.7778e-07, "Positive electrode LAM constant exponential term": 2.0, "Positive electrode critical stress [Pa]": 375000000.0, - "Initial concentration in positive electrode [mol.m-3]": 17038.0, - # Other - "Lithium metal partial molar volume [m3.mol-1]": 1.3e-05, - "Lithium plating kinetic rate constant [m.s-1]": 1e-09, - "Exchange-current density for plating [A.m-2]": plating_exchange_current_density_OKane2020, - "Exchange-current density for stripping [A.m-2]": stripping_exchange_current_density_OKane2020, - "Initial plated lithium concentration [mol.m-3]": 0.0, - "Typical plated lithium concentration [mol.m-3]": 1000.0, - "Lithium plating transfer coefficient": 0.65, - "Dead lithium decay constant [s-1]": 1e-06, - "Dead lithium decay rate [s-1]": SEI_limited_dead_lithium_OKane2022, - "Ratio of lithium moles to SEI moles": 1.0, - "Inner SEI reaction proportion": 0.0, - "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, - "Outer SEI partial molar volume [m3.mol-1]": 9.585e-05, - "SEI reaction exchange current density [A.m-2]": 1.5e-07, - "SEI resistivity [Ohm.m]": 200000.0, - "Outer SEI solvent diffusivity [m2.s-1]": 2.5000000000000002e-22, - "Bulk solvent concentration [mol.m-3]": 2636.0, - "Inner SEI open-circuit potential [V]": 0.1, - "Outer SEI open-circuit potential [V]": 0.8, - "Inner SEI electron conductivity [S.m-1]": 8.95e-14, - "Inner SEI lithium interstitial diffusivity [m2.s-1]": 1e-20, - "Lithium interstitial reference concentration [mol.m-3]": 15.0, - "Initial inner SEI thickness [m]": 0.0, - "Initial outer SEI thickness [m]": 5e-09, - "EC initial concentration in electrolyte [mol.m-3]": 4541.0, - "EC diffusivity [m2.s-1]": 2e-18, - "SEI kinetic rate constant [m.s-1]": 1e-12, - "SEI open-circuit potential [V]": 0.4, - "SEI growth activation energy [J.mol-1]": 38000.0, - "Negative current collector thickness [m]": 1.2e-05, - "Positive current collector thickness [m]": 1.6e-05, - "Electrode height [m]": 0.065, - "Electrode width [m]": 1.58, - "Cell cooling surface area [m2]": 0.00531, - "Cell volume [m3]": 2.42e-05, - "Cell thermal expansion coefficient [m.K-1]": 1.1e-06, - "Negative current collector conductivity [S.m-1]": 58411000.0, - "Positive current collector conductivity [S.m-1]": 36914000.0, - "Negative current collector density [kg.m-3]": 8960.0, - "Positive current collector density [kg.m-3]": 2700.0, - "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, - "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, - "Negative current collector thermal conductivity [W.m-1.K-1]": 401.0, - "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, - "Nominal cell capacity [A.h]": 5.0, - "Typical current [A]": 5.0, - "Current function [A]": 5.0, - "Negative particle radius [m]": 5.86e-06, - "Positive particle radius [m]": 5.22e-06, + # separator + "Separator porosity": 0.47, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator density [kg.m-3]": 397.0, + "Separator specific heat capacity [J.kg-1.K-1]": 700.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.16, + # electrolyte "Typical electrolyte concentration [mol.m-3]": 1000.0, "Initial concentration in electrolyte [mol.m-3]": 1000.0, "Cation transference number": 0.2594, "1 + dlnf/dlnc": 1.0, "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Nyman2008_arrhenius, "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Nyman2008_arrhenius, + # experiment "Reference temperature [K]": 298.15, "Total heat transfer coefficient [W.m-2.K-1]": 10.0, "Ambient temperature [K]": 298.15, @@ -616,5 +741,9 @@ def get_parameter_values(): "Number of cells connected in series to make a battery": 1.0, "Lower voltage cut-off [V]": 2.5, "Upper voltage cut-off [V]": 4.2, + "Initial concentration in negative electrode [mol.m-3]": 29866.0, + "Initial concentration in positive electrode [mol.m-3]": 17038.0, "Initial temperature [K]": 298.15, - } \ No newline at end of file + # citations + "citations": ["OKane2022", "Chen2020"], + } diff --git a/pybamm/input/parameters/lithium_ion/ORegan2022.py b/pybamm/input/parameters/lithium_ion/ORegan2022.py index b6c8cdc59a..3c893c10b5 100644 --- a/pybamm/input/parameters/lithium_ion/ORegan2022.py +++ b/pybamm/input/parameters/lithium_ion/ORegan2022.py @@ -25,6 +25,7 @@ def copper_heat_capacity_CRC(T): return cp + def aluminium_heat_capacity_CRC(T): """ Aluminium specific heat capacity as a function of the temperature from [1]. @@ -49,6 +50,7 @@ def aluminium_heat_capacity_CRC(T): return cp + def copper_thermal_conductivity_CRC(T): """ Copper thermal conductivity as a function of the temperature from [1]. @@ -73,6 +75,7 @@ def copper_thermal_conductivity_CRC(T): return lambda_th + def graphite_LGM50_diffusivity_ORegan2022(sto, T): """ LG M50 Graphite diffusivity as a function of stochiometry, in this case the @@ -131,6 +134,7 @@ def graphite_LGM50_diffusivity_ORegan2022(sto, T): return D_ref * arrhenius + def graphite_LGM50_ocp_Chen2020(sto): """ LG M50 Graphite open-circuit potential as a function of stochiometry, fit taken @@ -164,6 +168,7 @@ def graphite_LGM50_ocp_Chen2020(sto): return U + def graphite_LGM50_electrolyte_exchange_current_density_ORegan2022( c_e, c_s_surf, c_s_max, T ): @@ -209,6 +214,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_ORegan2022( * (1 - c_s_surf / c_s_max) ** (1 - alpha) ) + def graphite_LGM50_heat_capacity_ORegan2022(T): """ Wet negative electrode specific heat capacity as a function of the temperature from @@ -250,6 +256,7 @@ def graphite_LGM50_heat_capacity_ORegan2022(T): return cp_wet + def graphite_LGM50_thermal_conductivity_ORegan2022(T): """ Wet negative electrode thermal conductivity as a function of the temperature from @@ -276,6 +283,7 @@ def graphite_LGM50_thermal_conductivity_ORegan2022(T): return lambda_wet + def graphite_LGM50_entropic_change_ORegan2022(sto, c_s_max): """ LG M50 Graphite entropic change in open circuit potential (OCP) at a temperature of @@ -312,11 +320,13 @@ def graphite_LGM50_entropic_change_ORegan2022(sto, c_s_max): a0 * sto + c0 + a2 * pybamm.exp(-((sto - b2) ** 2) / c2) - + a1 * (pybamm.tanh(d1 * (sto - (b1 - c1))) - pybamm.tanh(d1 * (sto - (b1 + c1)))) + + a1 + * (pybamm.tanh(d1 * (sto - (b1 - c1))) - pybamm.tanh(d1 * (sto - (b1 + c1)))) ) / 1000 # fit in mV / K return dUdT + def nmc_LGM50_electronic_conductivity_ORegan2022(T): """ Positive electrode electronic conductivity as a function of the temperature from @@ -346,6 +356,7 @@ def nmc_LGM50_electronic_conductivity_ORegan2022(T): return sigma + def nmc_LGM50_diffusivity_ORegan2022(sto, T): """ NMC diffusivity as a function of stoichiometry, in this case the @@ -398,6 +409,7 @@ def nmc_LGM50_diffusivity_ORegan2022(sto, T): return D_ref * arrhenius + def nmc_LGM50_ocp_Chen2020(sto): """ LG M50 NMC open-circuit potential as a function of stoichiometry. The fit is @@ -431,6 +443,7 @@ def nmc_LGM50_ocp_Chen2020(sto): return U + def nmc_LGM50_electrolyte_exchange_current_density_ORegan2022( c_e, c_s_surf, c_s_max, T ): @@ -475,6 +488,7 @@ def nmc_LGM50_electrolyte_exchange_current_density_ORegan2022( * (1 - c_s_surf / c_s_max) ** (1 - alpha) ) + def nmc_LGM50_heat_capacity_ORegan2022(T): """ Wet positive electrode specific heat capacity as a function of the temperature from @@ -516,6 +530,7 @@ def nmc_LGM50_heat_capacity_ORegan2022(T): return cp_wet + def nmc_LGM50_thermal_conductivity_ORegan2022(T): """ Wet positive electrode thermal conductivity as a function of the temperature from @@ -542,6 +557,7 @@ def nmc_LGM50_thermal_conductivity_ORegan2022(T): return lambda_wet + def nmc_LGM50_entropic_change_ORegan2022(sto, c_s_max): """ LG M50 NMC 811 entropic change in open circuit potential (OCP) at a temperature of @@ -571,12 +587,14 @@ def nmc_LGM50_entropic_change_ORegan2022(sto, c_s_max): c2 = 0.02179 dUdT = ( - a1 * pybamm.exp(-((sto - b1) ** 2) / c1) + a2 * pybamm.exp(-((sto - b2) ** 2) / c2) + a1 * pybamm.exp(-((sto - b1) ** 2) / c1) + + a2 * pybamm.exp(-((sto - b2) ** 2) / c2) ) / 1000 # fit in mV / K return dUdT + def separator_LGM50_heat_capacity_ORegan2022(T): """ Wet separator specific heat capacity as a function of the temperature from [1]. @@ -617,6 +635,7 @@ def separator_LGM50_heat_capacity_ORegan2022(T): return cp_wet + def electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019(c_e, T): """ Transference number of LiPF6 in EC:EMC (3:7 w:w) as a function of ion @@ -656,6 +675,7 @@ def electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019(c_e, T): return electrolyte_transference_number_base_Landesfeind2019(c_e, T, coeffs) + def electrolyte_TDF_EC_EMC_3_7_Landesfeind2019(c_e, T): """ Thermodynamic factor (TDF) of LiPF6 in EC:EMC (3:7 w:w) as a function of ion @@ -685,6 +705,7 @@ def electrolyte_TDF_EC_EMC_3_7_Landesfeind2019(c_e, T): return electrolyte_TDF_base_Landesfeind2019(c_e, T, coeffs) + def electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7 w:w) as a function of ion concentration and @@ -712,6 +733,7 @@ def electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019(c_e, T): return electrolyte_diffusivity_base_Landesfeind2019(c_e, T, coeffs) + def electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7 w:w) as a function of ion concentration and @@ -740,16 +762,101 @@ def electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019(c_e, T): return electrolyte_conductivity_base_Landesfeind2019(c_e, T, coeffs) +# Call dict via a function to avoid errors when editing in place def get_parameter_values(): + """ + # ORegan2022 parameter set + # LG M50 cell parameters + + Parameters for an LG M50 cell, from the paper + + > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) + Electrochimica Acta 425 (2022): 140700 + + and references therein. + # LG M50 Graphite negative electrode parameters + + Parameters for a LG M50 graphite negative electrode, from the paper + + > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) + Electrochimica Acta 425 (2022): 140700 + + and references therein. + # Separator parameters + + Parameters for an LG M50 separator, from the paper + + > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) + Electrochimica Acta 425 (2022): 140700 + + and references therein. + # NMC 811 positive electrode parameters + + Parameters for an LG M50 NMC positive electrode, from the paper + + > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) + Electrochimica Acta 425 (2022): 140700 + + and references therein. + # LiPF6 in EC:EMC (3:7 w:w) electrolyte parameters + + Parameters for a LiPF6 in EC:EMC (3:7 w:w) electrolyte, from the paper + + > Johannes Landesfeind and Hubert A. Gasteiger, ["Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery + Electrolytes."](https://iopscience.iop.org/article/10.1149/2.0571912jes) Journal of + the Electrochemical Society 166 (2019): A3079. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) + Electrochimica Acta 425 (2022): 140700 + + and references therein. + """ + return { - # Negative electrode + # cell + "Negative current collector thickness [m]": 1.2e-05, "Negative electrode thickness [m]": 8.52e-05, + "Separator thickness [m]": 1.2e-05, + "Positive electrode thickness [m]": 7.56e-05, + "Positive current collector thickness [m]": 1.6e-05, + "Electrode height [m]": 0.065, + "Electrode width [m]": 1.58, + "Cell cooling surface area [m2]": 0.00531, + "Cell volume [m3]": 2.42e-05, + "Negative current collector conductivity [S.m-1]": 58411000.0, + "Positive current collector conductivity [S.m-1]": 36914000.0, + "Negative current collector density [kg.m-3]": 8933.0, + "Positive current collector density [kg.m-3]": 2702.0, + "Negative current collector specific heat capacity [J.kg-1.K-1]": copper_heat_capacity_CRC, + "Positive current collector specific heat capacity [J.kg-1.K-1]": aluminium_heat_capacity_CRC, + "Negative current collector thermal conductivity [W.m-1.K-1]": copper_thermal_conductivity_CRC, + "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, + "Nominal cell capacity [A.h]": 5.0, + "Typical current [A]": 5.0, + "Current function [A]": 5.0, + # negative electrode "Negative electrode conductivity [S.m-1]": 215.0, "Maximum concentration in negative electrode [mol.m-3]": 29583.0, "Negative electrode diffusivity [m2.s-1]": graphite_LGM50_diffusivity_ORegan2022, "Negative electrode OCP [V]": graphite_LGM50_ocp_Chen2020, "Negative electrode porosity": 0.25, "Negative electrode active material volume fraction": 0.75, + "Negative particle radius [m]": 5.86e-06, "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, "Negative electrode Bruggeman coefficient (electrode)": 0.0, "Negative electrode cation signed stoichiometry": -1.0, @@ -761,23 +868,14 @@ def get_parameter_values(): "Negative electrode specific heat capacity [J.kg-1.K-1]": graphite_LGM50_heat_capacity_ORegan2022, "Negative electrode thermal conductivity [W.m-1.K-1]": graphite_LGM50_thermal_conductivity_ORegan2022, "Negative electrode OCP entropic change [V.K-1]": graphite_LGM50_entropic_change_ORegan2022, - "Initial concentration in negative electrode [mol.m-3]": 28866.0, - # Separator - "Separator thickness [m]": 1.2e-05, - "Separator porosity": 0.47, - "Separator Bruggeman coefficient (electrolyte)": 1.5, - "Separator Bruggeman coefficient (electrode)": 1.5, - "Separator density [kg.m-3]": 1548.0, - "Separator specific heat capacity [J.kg-1.K-1]": separator_LGM50_heat_capacity_ORegan2022, - "Separator thermal conductivity [W.m-1.K-1]": 0.3344, - # Positive electrode - "Positive electrode thickness [m]": 7.56e-05, + # positive electrode "Positive electrode conductivity [S.m-1]": nmc_LGM50_electronic_conductivity_ORegan2022, "Maximum concentration in positive electrode [mol.m-3]": 51765.0, "Positive electrode diffusivity [m2.s-1]": nmc_LGM50_diffusivity_ORegan2022, "Positive electrode OCP [V]": nmc_LGM50_ocp_Chen2020, "Positive electrode porosity": 0.335, "Positive electrode active material volume fraction": 0.665, + "Positive particle radius [m]": 5.22e-06, "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, "Positive electrode Bruggeman coefficient (electrode)": 0.0, "Positive electrode cation signed stoichiometry": -1.0, @@ -789,33 +887,21 @@ def get_parameter_values(): "Positive electrode specific heat capacity [J.kg-1.K-1]": nmc_LGM50_heat_capacity_ORegan2022, "Positive electrode thermal conductivity [W.m-1.K-1]": nmc_LGM50_thermal_conductivity_ORegan2022, "Positive electrode OCP entropic change [V.K-1]": nmc_LGM50_entropic_change_ORegan2022, - "Initial concentration in positive electrode [mol.m-3]": 13975.0, - # Other - "Negative current collector thickness [m]": 1.2e-05, - "Positive current collector thickness [m]": 1.6e-05, - "Electrode height [m]": 0.065, - "Electrode width [m]": 1.58, - "Cell cooling surface area [m2]": 0.00531, - "Cell volume [m3]": 2.42e-05, - "Negative current collector conductivity [S.m-1]": 58411000.0, - "Positive current collector conductivity [S.m-1]": 36914000.0, - "Negative current collector density [kg.m-3]": 8933.0, - "Positive current collector density [kg.m-3]": 2702.0, - "Negative current collector specific heat capacity [J.kg-1.K-1]": copper_heat_capacity_CRC, - "Positive current collector specific heat capacity [J.kg-1.K-1]": aluminium_heat_capacity_CRC, - "Negative current collector thermal conductivity [W.m-1.K-1]": copper_thermal_conductivity_CRC, - "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, - "Nominal cell capacity [A.h]": 5.0, - "Typical current [A]": 5.0, - "Current function [A]": 5.0, - "Negative particle radius [m]": 5.86e-06, - "Positive particle radius [m]": 5.22e-06, + # separator + "Separator porosity": 0.47, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator Bruggeman coefficient (electrode)": 1.5, + "Separator density [kg.m-3]": 1548.0, + "Separator specific heat capacity [J.kg-1.K-1]": separator_LGM50_heat_capacity_ORegan2022, + "Separator thermal conductivity [W.m-1.K-1]": 0.3344, + # electrolyte "Typical electrolyte concentration [mol.m-3]": 1000.0, "Initial concentration in electrolyte [mol.m-3]": 1000.0, "Cation transference number": electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019, "1 + dlnf/dlnc": electrolyte_TDF_EC_EMC_3_7_Landesfeind2019, "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019, "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019, + # experiment "Reference temperature [K]": 298.15, "Total heat transfer coefficient [W.m-2.K-1]": 10.0, "Ambient temperature [K]": 298.15, @@ -823,5 +909,9 @@ def get_parameter_values(): "Number of cells connected in series to make a battery": 1.0, "Lower voltage cut-off [V]": 2.5, "Upper voltage cut-off [V]": 4.4, + "Initial concentration in negative electrode [mol.m-3]": 28866.0, + "Initial concentration in positive electrode [mol.m-3]": 13975.0, "Initial temperature [K]": 298.15, - } \ No newline at end of file + # citations + "citations": ["ORegan2022", "Chen2020"], + } diff --git a/pybamm/input/parameters/lithium_ion/Prada2013.py b/pybamm/input/parameters/lithium_ion/Prada2013.py index 47f907f70d..524d5632f9 100644 --- a/pybamm/input/parameters/lithium_ion/Prada2013.py +++ b/pybamm/input/parameters/lithium_ion/Prada2013.py @@ -34,6 +34,7 @@ def graphite_LGM50_ocp_Chen2020(sto): return u_eq + def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( c_e, c_s_surf, c_s_max, T ): @@ -72,6 +73,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def LFP_ocp_ashfar2017(sto): """ Open-circuit potential for LFP @@ -94,6 +96,7 @@ def LFP_ocp_ashfar2017(sto): return k + def LFP_electrolyte_exchange_current_density_kashkooli2017(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between LFP and electrolyte @@ -130,6 +133,7 @@ def LFP_electrolyte_exchange_current_density_kashkooli2017(c_e, c_s_surf, c_s_ma m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def electrolyte_diffusivity_Nyman2008(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -160,6 +164,7 @@ def electrolyte_diffusivity_Nyman2008(c_e, T): return D_c_e + def electrolyte_conductivity_Nyman2008(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -193,16 +198,108 @@ def electrolyte_conductivity_Nyman2008(c_e, T): return sigma_e +# Call dict via a function to avoid errors when editing in place def get_parameter_values(): + """ + # Prada2013 parameter set + # Pouch cell parameters + + Parameters for an A123 LFP cell, from the paper + + > Lain, M. J., Brandon, J., & Kendrick, E. (2019). Design Strategies for High Power + vs. High Energy Lithium Ion Cells. + [Batteries](https://doi.org/10.3390/batteries5040064), 5(4), 64. + # LG M50 Graphite negative electrode parameters + + Parameters for a LG M50 graphite negative electrode, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # Separator parameters + + Parameters for an LG M50 separator, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # Lithium Iron Phosphate positive electrode parameters + + Parameters for an LFP positive electrode, from the paper + + > Prada, E., Di Domenico, D., Creff, Y., Bernard, J., Sauvant-Moynot, V., & Huet, F. + (2013). A simplified electrochemical and thermal aging model of LiFePO4-graphite + Li-ion batteries: power and capacity fade simulations. [Journal of The + Electrochemical Society](https://doi.org/10.1149/2.053304jes), 160(4), A616. + + and references therein. The functions used for OCP and exchange-current density are + from separate references (documented within the functions), to provide better fit to + data + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and + modelling of the mass transport phenomena in LiPF6-EC-EMC + electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) + Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 4C, using the initial conditions + from the paper + + > Prada, E., Di Domenico, D., Creff, Y., Bernard, J., Sauvant-Moynot, V., & Huet, F. + (2013). A simplified electrochemical and thermal aging model of LiFePO4-graphite + Li-ion batteries: power and capacity fade simulations. [Journal of The + Electrochemical Society](https://doi.org/10.1149/2.053304jes), 160(4), A616. + + and references therein. + """ + return { - # Negative electrode + # cell + "Negative current collector thickness [m]": 1e-05, "Negative electrode thickness [m]": 3.6e-05, + "Separator thickness [m]": 1.8e-05, + "Positive electrode thickness [m]": 8.1e-05, + "Positive current collector thickness [m]": 1.9e-05, + "Electrode height [m]": 0.0649, + "Electrode width [m]": 1.78, + "Negative tab width [m]": 0.04, + "Negative tab centre y-coordinate [m]": 0.06, + "Negative tab centre z-coordinate [m]": 0.137, + "Positive tab width [m]": 0.04, + "Positive tab centre y-coordinate [m]": 0.147, + "Positive tab centre z-coordinate [m]": 0.137, + "Negative current collector conductivity [S.m-1]": 58411000.0, + "Positive current collector conductivity [S.m-1]": 36914000.0, + "Negative current collector density [kg.m-3]": 8960.0, + "Positive current collector density [kg.m-3]": 2700.0, + "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, + "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, + "Negative current collector thermal conductivity [W.m-1.K-1]": 401.0, + "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, + "Nominal cell capacity [A.h]": 1.1, + "Current function [A]": 1.1, + "Typical current [A]": 1.1, + # negative electrode "Negative electrode conductivity [S.m-1]": 215.0, "Maximum concentration in negative electrode [mol.m-3]": 33133.0, "Negative electrode diffusivity [m2.s-1]": 3.3e-14, "Negative electrode OCP [V]": graphite_LGM50_ocp_Chen2020, "Negative electrode porosity": 0.25, "Negative electrode active material volume fraction": 0.75, + "Negative particle radius [m]": 5.86e-06, "Negative electrode Bruggeman coefficient (electrolyte)": 1.5, "Negative electrode Bruggeman coefficient (electrode)": 1.5, "Negative electrode cation signed stoichiometry": -1.0, @@ -214,22 +311,14 @@ def get_parameter_values(): "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, "Negative electrode OCP entropic change [V.K-1]": 0.0, - "Initial concentration in negative electrode [mol.m-3]": 28831.45783, - # Separator - "Separator thickness [m]": 1.8e-05, - "Separator porosity": 0.47, - "Separator Bruggeman coefficient (electrolyte)": 1.5, - "Separator density [kg.m-3]": 397.0, - "Separator specific heat capacity [J.kg-1.K-1]": 700.0, - "Separator thermal conductivity [W.m-1.K-1]": 0.16, - # Positive electrode - "Positive electrode thickness [m]": 8.1e-05, + # positive electrode "Positive electrode conductivity [S.m-1]": 0.33795074, "Maximum concentration in positive electrode [mol.m-3]": 22806.0, "Positive electrode diffusivity [m2.s-1]": 5.9e-18, "Positive electrode OCP [V]": LFP_ocp_ashfar2017, "Positive electrode porosity": 0.12728395, "Positive electrode active material volume fraction": 0.28485556, + "Positive particle radius [m]": 1e-08, "Positive electrode Bruggeman coefficient (electrode)": 1.5, "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, "Positive electrode cation signed stoichiometry": -1.0, @@ -241,37 +330,20 @@ def get_parameter_values(): "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, "Positive electrode OCP entropic change [V.K-1]": 0.0, "Positive electrode exchange-current density [A.m-2]": LFP_electrolyte_exchange_current_density_kashkooli2017, - "Initial concentration in positive electrode [mol.m-3]": 35.3766672, - # Other - "Negative current collector thickness [m]": 1e-05, - "Positive current collector thickness [m]": 1.9e-05, - "Electrode height [m]": 0.0649, - "Electrode width [m]": 1.78, - "Negative tab width [m]": 0.04, - "Negative tab centre y-coordinate [m]": 0.06, - "Negative tab centre z-coordinate [m]": 0.137, - "Positive tab width [m]": 0.04, - "Positive tab centre y-coordinate [m]": 0.147, - "Positive tab centre z-coordinate [m]": 0.137, - "Negative current collector conductivity [S.m-1]": 58411000.0, - "Positive current collector conductivity [S.m-1]": 36914000.0, - "Negative current collector density [kg.m-3]": 8960.0, - "Positive current collector density [kg.m-3]": 2700.0, - "Negative current collector specific heat capacity [J.kg-1.K-1]": 385.0, - "Positive current collector specific heat capacity [J.kg-1.K-1]": 897.0, - "Negative current collector thermal conductivity [W.m-1.K-1]": 401.0, - "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, - "Nominal cell capacity [A.h]": 1.1, - "Current function [A]": 1.1, - "Typical current [A]": 1.1, - "Negative particle radius [m]": 5.86e-06, - "Positive particle radius [m]": 1e-08, + # separator + "Separator porosity": 0.47, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator density [kg.m-3]": 397.0, + "Separator specific heat capacity [J.kg-1.K-1]": 700.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.16, + # electrolyte "Typical electrolyte concentration [mol.m-3]": 1000.0, "Initial concentration in electrolyte [mol.m-3]": 1000.0, "Cation transference number": 0.2594, "1 + dlnf/dlnc": 1.0, "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Nyman2008, "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Nyman2008, + # experiment "Reference temperature [K]": 298.15, "Heat transfer coefficient [W.m-2.K-1]": 10.0, "Ambient temperature [K]": 298.15, @@ -279,5 +351,9 @@ def get_parameter_values(): "Number of cells connected in series to make a battery": 1.0, "Lower voltage cut-off [V]": 2.0, "Upper voltage cut-off [V]": 4.4, + "Initial concentration in negative electrode [mol.m-3]": 28831.45783, + "Initial concentration in positive electrode [mol.m-3]": 35.3766672, "Initial temperature [K]": 298.15, - } \ No newline at end of file + # citations + "citations": ["Chen2020", "Lain2019", "Prada2013"], + } diff --git a/pybamm/input/parameters/lithium_ion/Ramadass2004.py b/pybamm/input/parameters/lithium_ion/Ramadass2004.py index 90245db9b8..1eb3fbfaa0 100644 --- a/pybamm/input/parameters/lithium_ion/Ramadass2004.py +++ b/pybamm/input/parameters/lithium_ion/Ramadass2004.py @@ -29,6 +29,7 @@ def graphite_mcmb2528_diffusivity_Dualfoil1998(sto, T): return D_ref * arrhenius + def graphite_ocp_Ramadass2004(sto): """ Graphite Open Circuit Potential (OCP) as a function of the @@ -53,6 +54,7 @@ def graphite_ocp_Ramadass2004(sto): return u_eq + def graphite_electrolyte_exchange_current_density_Ramadass2004( c_e, c_s_surf, c_s_max, T ): @@ -90,6 +92,7 @@ def graphite_electrolyte_exchange_current_density_Ramadass2004( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def graphite_entropic_change_Moura2016(sto, c_s_max): """ Graphite entropic change in open circuit potential (OCP) at a temperature of @@ -120,6 +123,7 @@ def graphite_entropic_change_Moura2016(sto, c_s_max): return du_dT + def lico2_diffusivity_Ramadass2004(sto, T): """ LiCo2 diffusivity as a function of stochiometry, in this case the @@ -149,6 +153,7 @@ def lico2_diffusivity_Ramadass2004(sto, T): return D_ref * arrhenius + def lico2_ocp_Ramadass2004(sto): """ Lithium Cobalt Oxide (LiCO2) Open Circuit Potential (OCP) as a a function of the @@ -189,6 +194,7 @@ def lico2_ocp_Ramadass2004(sto): return u_eq + def lico2_electrolyte_exchange_current_density_Ramadass2004(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between lico2 and LiPF6 in @@ -224,6 +230,7 @@ def lico2_electrolyte_exchange_current_density_Ramadass2004(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def lico2_entropic_change_Moura2016(sto, c_s_max): """ Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at @@ -245,16 +252,22 @@ def lico2_entropic_change_Moura2016(sto, c_s_max): sto = stretch * sto du_dT = ( - 0.07645 * (-54.4806 / c_s_max) * ((1.0 / pybamm.cosh(30.834 - 54.4806 * sto)) ** 2) + 0.07645 + * (-54.4806 / c_s_max) + * ((1.0 / pybamm.cosh(30.834 - 54.4806 * sto)) ** 2) + 2.1581 * (-50.294 / c_s_max) * ((pybamm.cosh(52.294 - 50.294 * sto)) ** (-2)) - + 0.14169 * (19.854 / c_s_max) * ((pybamm.cosh(11.0923 - 19.8543 * sto)) ** (-2)) + + 0.14169 + * (19.854 / c_s_max) + * ((pybamm.cosh(11.0923 - 19.8543 * sto)) ** (-2)) - 0.2051 * (5.4888 / c_s_max) * ((pybamm.cosh(1.4684 - 5.4888 * sto)) ** (-2)) - - (0.2531 / 0.1316 / c_s_max) * ((pybamm.cosh((-sto + 0.56478) / 0.1316)) ** (-2)) + - (0.2531 / 0.1316 / c_s_max) + * ((pybamm.cosh((-sto + 0.56478) / 0.1316)) ** (-2)) - (0.02167 / 0.006 / c_s_max) * ((pybamm.cosh((sto - 0.525) / 0.006)) ** (-2)) ) return du_dT + def electrolyte_diffusivity_Ramadass2004(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. @@ -285,6 +298,7 @@ def electrolyte_diffusivity_Ramadass2004(c_e, T): return D_c_e * arrhenius + def electrolyte_conductivity_Ramadass2004(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration. @@ -327,56 +341,111 @@ def electrolyte_conductivity_Ramadass2004(c_e, T): return sigma_e * arrhenius +# Call dict via a function to avoid errors when editing in place def get_parameter_values(): + """ + # Ramadass2004 parameter set + # Cell geometry parameters + + Parameters for a lithium Cobalt Oxide positive electrode, from the paper + + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An + asymptotic derivation of a single particle model with electrolyte”. [Journal of The + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. + Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." + (2004) + > P. Ramadass, Bala Haran, Ralph White, and Branko N. Popov. "Capacity fade of Sony + 18650 cells cycled at elevated temperatures part I." (2002) + + and references therein. + # Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the paper + + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An + asymptotic derivation of a single particle model with electrolyte”. [Journal of The + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. + Popov.["Development of First Principles Capacity Fade Model for Li-Ion Cells."](http + s://scholarcommons.sc.edu/cgi/viewcontent.cgi?article=1161&context=eche_facpub) + (2004) + + and references therein. + # Separator parameters + + Parameters for the separator from the papers + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery i. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data + are extracted from + + > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and + surface cooling on lithium ion cell performance."" Journal of The Electrochemical + Society, 165.13 (2018): A3169-A3178. + # Lithium Cobalt Oxide positive electrode parameters + + Parameters for a lithium Cobalt Oxide positive electrode, from the paper + + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An + asymptotic derivation of a single particle model with electrolyte”. [Journal of The + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. + Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." + (2004) + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An + asymptotic derivation of a single particle model with electrolyte”. [Journal of The + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. + Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." + (2004) + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An + asymptotic derivation of a single particle model with electrolyte”. [Journal of The + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + Development of first principles capacity fade model for Li-ion cells. Journal of the + Electrochemical Society, 151(2), A196-A203. + > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + + Note: Ramadass 2004 has mistakes in units and values of SEI parameters, corrected by + Safari 2009. + """ + return { - # Negative electrode - "Negative electrode thickness [m]": 8.8e-05, - "Negative electrode conductivity [S.m-1]": 100.0, - "Maximum concentration in negative electrode [mol.m-3]": 30555.0, - "Negative electrode diffusivity [m2.s-1]": graphite_mcmb2528_diffusivity_Dualfoil1998, - "Negative electrode OCP [V]": graphite_ocp_Ramadass2004, - "Negative electrode porosity": 0.485, - "Negative electrode active material volume fraction": 0.49, - "Negative electrode Bruggeman coefficient (electrolyte)": 4.0, - "Negative electrode Bruggeman coefficient (electrode)": 4.0, - "Negative electrode cation signed stoichiometry": -1.0, - "Negative electrode electrons in reaction": 1.0, - "Negative electrode charge transfer coefficient": 0.5, - "Negative electrode double-layer capacity [F.m-2]": 0.2, - "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_Ramadass2004, - "Negative electrode density [kg.m-3]": 1657.0, - "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, - "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, - "Negative electrode OCP entropic change [V.K-1]": graphite_entropic_change_Moura2016, - "Initial concentration in negative electrode [mol.m-3]": 22610.7, - # Separator - "Separator thickness [m]": 2.5e-05, - "Separator porosity": 0.508, - "Separator Bruggeman coefficient (electrolyte)": 1.9804586773134945, - "Separator density [kg.m-3]": 1017.0, - "Separator specific heat capacity [J.kg-1.K-1]": 1978.0, - "Separator thermal conductivity [W.m-1.K-1]": 0.34, - # Positive electrode - "Positive electrode thickness [m]": 8e-05, - "Positive electrode conductivity [S.m-1]": 100.0, - "Maximum concentration in positive electrode [mol.m-3]": 51555.0, - "Positive electrode diffusivity [m2.s-1]": lico2_diffusivity_Ramadass2004, - "Positive electrode OCP [V]": lico2_ocp_Ramadass2004, - "Positive electrode porosity": 0.385, - "Positive electrode active material volume fraction": 0.59, - "Positive electrode Bruggeman coefficient (electrolyte)": 4.0, - "Positive electrode Bruggeman coefficient (electrode)": 4.0, - "Positive electrode cation signed stoichiometry": -1.0, - "Positive electrode electrons in reaction": 1.0, - "Positive electrode charge transfer coefficient": 0.5, - "Positive electrode double-layer capacity [F.m-2]": 0.2, - "Positive electrode exchange-current density [A.m-2]": lico2_electrolyte_exchange_current_density_Ramadass2004, - "Positive electrode density [kg.m-3]": 3262.0, - "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, - "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, - "Positive electrode OCP entropic change [V.K-1]": lico2_entropic_change_Moura2016, - "Initial concentration in positive electrode [mol.m-3]": 25777.5, - # Other + # sei "Ratio of lithium moles to SEI moles": 2.0, "Inner SEI reaction proportion": 0.5, "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, @@ -397,7 +466,11 @@ def get_parameter_values(): "SEI kinetic rate constant [m.s-1]": 1e-12, "SEI open-circuit potential [V]": 0.0, "SEI growth activation energy [J.mol-1]": 0.0, + # cell "Negative current collector thickness [m]": 1.7e-05, + "Negative electrode thickness [m]": 8.8e-05, + "Separator thickness [m]": 2.5e-05, + "Positive electrode thickness [m]": 8e-05, "Positive current collector thickness [m]": 2.3e-05, "Electrode height [m]": 0.057, "Electrode width [m]": 1.060692, @@ -418,14 +491,58 @@ def get_parameter_values(): "Nominal cell capacity [A.h]": 1.0, "Typical current [A]": 1.0, "Current function [A]": 1.0, + # negative electrode + "Negative electrode conductivity [S.m-1]": 100.0, + "Maximum concentration in negative electrode [mol.m-3]": 30555.0, + "Negative electrode diffusivity [m2.s-1]": graphite_mcmb2528_diffusivity_Dualfoil1998, + "Negative electrode OCP [V]": graphite_ocp_Ramadass2004, + "Negative electrode porosity": 0.485, + "Negative electrode active material volume fraction": 0.49, "Negative particle radius [m]": 2e-06, + "Negative electrode Bruggeman coefficient (electrolyte)": 4.0, + "Negative electrode Bruggeman coefficient (electrode)": 4.0, + "Negative electrode cation signed stoichiometry": -1.0, + "Negative electrode electrons in reaction": 1.0, + "Negative electrode charge transfer coefficient": 0.5, + "Negative electrode double-layer capacity [F.m-2]": 0.2, + "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_Ramadass2004, + "Negative electrode density [kg.m-3]": 1657.0, + "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, + "Negative electrode OCP entropic change [V.K-1]": graphite_entropic_change_Moura2016, + # positive electrode + "Positive electrode conductivity [S.m-1]": 100.0, + "Maximum concentration in positive electrode [mol.m-3]": 51555.0, + "Positive electrode diffusivity [m2.s-1]": lico2_diffusivity_Ramadass2004, + "Positive electrode OCP [V]": lico2_ocp_Ramadass2004, + "Positive electrode porosity": 0.385, + "Positive electrode active material volume fraction": 0.59, "Positive particle radius [m]": 2e-06, + "Positive electrode Bruggeman coefficient (electrolyte)": 4.0, + "Positive electrode Bruggeman coefficient (electrode)": 4.0, + "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode electrons in reaction": 1.0, + "Positive electrode charge transfer coefficient": 0.5, + "Positive electrode double-layer capacity [F.m-2]": 0.2, + "Positive electrode exchange-current density [A.m-2]": lico2_electrolyte_exchange_current_density_Ramadass2004, + "Positive electrode density [kg.m-3]": 3262.0, + "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, + "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, + "Positive electrode OCP entropic change [V.K-1]": lico2_entropic_change_Moura2016, + # separator + "Separator porosity": 0.508, + "Separator Bruggeman coefficient (electrolyte)": 1.9804586773134945, + "Separator density [kg.m-3]": 1017.0, + "Separator specific heat capacity [J.kg-1.K-1]": 1978.0, + "Separator thermal conductivity [W.m-1.K-1]": 0.34, + # electrolyte "Typical electrolyte concentration [mol.m-3]": 1000.0, "Initial concentration in electrolyte [mol.m-3]": 1000.0, "Cation transference number": 0.363, "1 + dlnf/dlnc": 1.0, "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Ramadass2004, "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Ramadass2004, + # experiment "Reference temperature [K]": 298.15, "Ambient temperature [K]": 298.15, "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, @@ -437,5 +554,9 @@ def get_parameter_values(): "Number of cells connected in series to make a battery": 1.0, "Lower voltage cut-off [V]": 2.8, "Upper voltage cut-off [V]": 4.2, + "Initial concentration in negative electrode [mol.m-3]": 22610.7, + "Initial concentration in positive electrode [mol.m-3]": 25777.5, "Initial temperature [K]": 298.15, - } \ No newline at end of file + # citations + "citations": ["Ramadass2004"], + } diff --git a/pybamm/input/parameters/lithium_ion/Xu2019.py b/pybamm/input/parameters/lithium_ion/Xu2019.py index 94b387c414..02c2918b54 100644 --- a/pybamm/input/parameters/lithium_ion/Xu2019.py +++ b/pybamm/input/parameters/lithium_ion/Xu2019.py @@ -31,6 +31,7 @@ def li_metal_electrolyte_exchange_current_density_Xu2019(c_e, c_Li, T): return m_ref * c_Li**0.7 * c_e**0.3 + def nmc_ocp_Xu2019(sto): """ Nickel Managanese Cobalt Oxide (NMC) Open Circuit Potential (OCP) as a @@ -78,6 +79,7 @@ def nmc_ocp_Xu2019(sto): return u_eq + def nmc_electrolyte_exchange_current_density_Xu2019(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -107,10 +109,13 @@ def nmc_electrolyte_exchange_current_density_Xu2019(c_e, c_s_surf, c_s_max, T): Exchange-current density [A.m-2] """ # assuming implicit correction of incorrect units from the paper - m_ref = 5.76e-11 * pybamm.constants.F # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = ( + 5.76e-11 * pybamm.constants.F + ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations return m_ref * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + def electrolyte_diffusivity_Valoen2005(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration, from [1] (eqn 14) @@ -144,6 +149,7 @@ def electrolyte_diffusivity_Valoen2005(c_e, T): # note, in the Valoen paper, ln means log10, so its inverse is 10^x return (10 ** (D_0 + D_1 * c_e)) * 1e-4 + def electrolyte_conductivity_Valoen2005(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration, from [1] @@ -181,42 +187,95 @@ def electrolyte_conductivity_Valoen2005(c_e, T): ) +# Call dict via a function to avoid errors when editing in place def get_parameter_values(): + """ + # Xu2019 parameter set + # Kokam SLPB78205130H cell parameters + + Parameters for a Kokam SLPB78205130H cell, from the paper + + > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + and references therein. + # Graphite MCMB 2528 anode parameters + + Parameters for a graphite MCMB 2528 anode, from the paper + + > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + and references therein. + # Separator parameters + + Parameters for a Celgard 2325 separator, from the paper + + > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + and references therein. + # Lithium Cobalt Oxide cathode parameters + + Parameters for a lithium Cobalt Oxide cathode, from the paper + + > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > Valøen, Lars Ole, and Jan N. Reimers. "Transport properties of LiPF6-based Li-ion + battery electrolytes." Journal of The Electrochemical Society 152.5 (2005): + A882-A891. [doi: 10.1149/1.1872737](http://dx.doi.org/10.1149/1.1872737) + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + Development of first principles capacity fade model for Li-ion cells. Journal of the + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. + > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. + """ + return { - # Negative electrode - "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, - "Negative electrode thickness [m]": 0.0007, - "Negative electrode OCP [V]": 0.0, - "Negative electrode conductivity [S.m-1]": 10776000.0, - "Negative electrode OCP entropic change [V.K-1]": 0.0, - "Negative electrode cation signed stoichiometry": -1.0, - "Negative electrode electrons in reaction": 1.0, - "Negative electrode charge transfer coefficient": 0.5, - "Negative electrode double-layer capacity [F.m-2]": 0.2, - # Separator - "Separator thickness [m]": 2.5e-05, - "Separator porosity": 0.39, - "Separator Bruggeman coefficient (electrolyte)": 1.5, - "Separator Bruggeman coefficient (electrode)": 1.5, - # Positive electrode - "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, - "Positive electrode thickness [m]": 4.2e-05, - "Positive electrode conductivity [S.m-1]": 100.0, - "Maximum concentration in positive electrode [mol.m-3]": 48230.0, - "Positive electrode diffusivity [m2.s-1]": 1e-14, - "Positive electrode OCP [V]": nmc_ocp_Xu2019, - "Positive electrode porosity": 0.331, - "Positive electrode active material volume fraction": 0.518, - "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, - "Positive electrode Bruggeman coefficient (electrode)": 1.5, - "Positive electrode OCP entropic change [V.K-1]": 0.0, - "Positive electrode cation signed stoichiometry": -1.0, - "Positive electrode electrons in reaction": 1.0, - "Positive electrode charge transfer coefficient": 0.5, - "Positive electrode exchange-current density [A.m-2]": nmc_electrolyte_exchange_current_density_Xu2019, - "Positive electrode double-layer capacity [F.m-2]": 0.2, - "Initial concentration in positive electrode [mol.m-3]": 4631.0, - # Other + # sei "Ratio of lithium moles to SEI moles": 2.0, "Inner SEI reaction proportion": 0.5, "Inner SEI partial molar volume [m3.mol-1]": 9.585e-05, @@ -237,20 +296,55 @@ def get_parameter_values(): "SEI kinetic rate constant [m.s-1]": 1e-12, "SEI open-circuit potential [V]": 0.4, "SEI growth activation energy [J.mol-1]": 0.0, + "Negative electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + "Positive electrode reaction-driven LAM factor [m3.mol-1]": 0.0, + # cell + "Negative electrode thickness [m]": 0.0007, + "Separator thickness [m]": 2.5e-05, + "Positive electrode thickness [m]": 4.2e-05, "Electrode height [m]": 0.01, "Electrode width [m]": 0.0154, "Nominal cell capacity [A.h]": 0.0024, "Typical current [A]": 0.0024, "Current function [A]": 0.0024, + # negative electrode + "Negative electrode OCP [V]": 0.0, + "Negative electrode conductivity [S.m-1]": 10776000.0, + "Negative electrode OCP entropic change [V.K-1]": 0.0, + "Negative electrode cation signed stoichiometry": -1.0, + "Negative electrode electrons in reaction": 1.0, "Typical plated lithium concentration [mol.m-3]": 76900.0, "Exchange-current density for plating [A.m-2]": li_metal_electrolyte_exchange_current_density_Xu2019, + "Negative electrode charge transfer coefficient": 0.5, + "Negative electrode double-layer capacity [F.m-2]": 0.2, + # positive electrode + "Positive electrode conductivity [S.m-1]": 100.0, + "Maximum concentration in positive electrode [mol.m-3]": 48230.0, + "Positive electrode diffusivity [m2.s-1]": 1e-14, + "Positive electrode OCP [V]": nmc_ocp_Xu2019, + "Positive electrode porosity": 0.331, + "Positive electrode active material volume fraction": 0.518, "Positive particle radius [m]": 5.3e-06, + "Positive electrode Bruggeman coefficient (electrolyte)": 1.5, + "Positive electrode Bruggeman coefficient (electrode)": 1.5, + "Positive electrode OCP entropic change [V.K-1]": 0.0, + "Positive electrode cation signed stoichiometry": -1.0, + "Positive electrode electrons in reaction": 1.0, + "Positive electrode charge transfer coefficient": 0.5, + "Positive electrode exchange-current density [A.m-2]": nmc_electrolyte_exchange_current_density_Xu2019, + "Positive electrode double-layer capacity [F.m-2]": 0.2, + # separator + "Separator porosity": 0.39, + "Separator Bruggeman coefficient (electrolyte)": 1.5, + "Separator Bruggeman coefficient (electrode)": 1.5, + # electrolyte "Typical electrolyte concentration [mol.m-3]": 1000.0, "Initial concentration in electrolyte [mol.m-3]": 1000.0, "Cation transference number": 0.38, "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Valoen2005, "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Valoen2005, "1 + dlnf/dlnc": 1.0, + # experiment "Ambient temperature [K]": 298.15, "Reference temperature [K]": 298.15, "Heat transfer coefficient [W.m-2.K-1]": 10.0, @@ -258,5 +352,8 @@ def get_parameter_values(): "Number of cells connected in series to make a battery": 1.0, "Lower voltage cut-off [V]": 3.5, "Upper voltage cut-off [V]": 4.2, + "Initial concentration in positive electrode [mol.m-3]": 4631.0, "Initial temperature [K]": 298.15, - } \ No newline at end of file + # citations + "citations": ["Xu2019"], + } diff --git a/pybamm/input/parameters/lithium_ion/graphite_LGM50_ocp_Chen2020.csv b/pybamm/input/parameters/lithium_ion/graphite_LGM50_ocp_Chen2020.csv index a7f8159e0b..2b2aa19a03 100644 --- a/pybamm/input/parameters/lithium_ion/graphite_LGM50_ocp_Chen2020.csv +++ b/pybamm/input/parameters/lithium_ion/graphite_LGM50_ocp_Chen2020.csv @@ -1,238 +1,243 @@ -0.000000000000000000e+00,1.817727483793339927e+00 -3.129623099194350083e-02,1.082880700000000029e+00 -3.499901742313830250e-02,9.959379400000000215e-01 -3.870179844267390007e-02,9.002339799999999892e-01 -4.240457604009070097e-02,7.964943100000000387e-01 -4.610735676679689893e-02,7.335442899999999877e-01 -4.981014728648330142e-02,6.666431400000000229e-01 -5.351291695505130258e-02,6.413714900000000441e-01 -5.721568000804520132e-02,5.981386899999999729e-01 -6.091844956483719736e-02,5.670836000000000210e-01 -6.462121788965810576e-02,5.474618100000000487e-01 -6.832398993729429937e-02,5.306839899999999943e-01 -7.202675162067259662e-02,5.130473399999999629e-01 -7.572951196432030352e-02,4.939409200000000055e-01 -7.943227239726670386e-02,4.792627400000000204e-01 -8.313503093982879677e-02,4.606525899999999729e-01 -8.683778629704409779e-02,4.599272600000000044e-01 -9.054054440929369674e-02,4.380150099999999824e-01 -9.424331249626340112e-02,4.243866499999999764e-01 -9.794607007156390377e-02,4.115026900000000043e-01 -1.016488250298570040e-01,4.003365899999999922e-01 -1.053515790517000061e-01,3.895713399999999882e-01 -1.090543363662490051e-01,3.775653800000000060e-01 -1.127570974301270040e-01,3.629254100000000038e-01 -1.164598491532889968e-01,3.435708599999999779e-01 -1.201626080862479989e-01,3.406313999999999731e-01 -1.238653569843320007e-01,3.229946799999999785e-01 -1.275681122080279950e-01,3.137945799999999896e-01 -1.312708644604740071e-01,3.079538600000000237e-01 -1.349736206966070107e-01,2.920731899999999825e-01 -1.386763826189350013e-01,2.869768699999999950e-01 -1.423791302188029961e-01,2.740547700000000031e-01 -1.460818902042889944e-01,2.670497000000000010e-01 -1.497846498663570058e-01,2.585749299999999806e-01 -1.534874053980720132e-01,2.526578300000000277e-01 -1.571901756580049991e-01,2.482677699999999987e-01 -1.608929390406249882e-01,2.414344999999999963e-01 -1.645957006249859911e-01,2.336277800000000071e-01 -1.682984701283530005e-01,2.295621800000000046e-01 -1.720012237594620019e-01,2.237023599999999890e-01 -1.757039875852690058e-01,2.218127099999999963e-01 -1.794067385283510119e-01,2.208965099999999904e-01 -1.831095011867990008e-01,2.194268000000000052e-01 -1.868122857437589934e-01,2.183006399999999902e-01 -1.905150439888650127e-01,2.184533300000000011e-01 -1.942177984499509902e-01,2.175371500000000125e-01 -1.979205609333170024e-01,2.171935700000000025e-01 -2.016233375304480047e-01,2.163537299999999941e-01 -2.053260999073329984e-01,2.166782200000000047e-01 -2.090288634215139996e-01,2.173844400000000121e-01 -2.127316378112679984e-01,2.146931300000000098e-01 -2.164344000186889938e-01,2.154184600000000060e-01 -2.201371587585519984e-01,2.146549500000000110e-01 -2.238399329057280118e-01,2.135479000000000127e-01 -2.275427048595710100e-01,2.139296400000000042e-01 -2.312454729414349930e-01,2.107420600000000088e-01 -2.349482466088839983e-01,2.087378799999999868e-01 -2.386510070305279951e-01,2.046531900000000126e-01 -2.423537710967559877e-01,2.020573200000000125e-01 -2.460565347797359914e-01,1.977435800000000021e-01 -2.497592960425510100e-01,1.944414700000000051e-01 -2.534620753054270259e-01,1.919028500000000137e-01 -2.571648555416489734e-01,1.885053100000000093e-01 -2.608676233988099780e-01,1.858139900000000122e-01 -2.645703883436820170e-01,1.832753699999999930e-01 -2.682731419601270262e-01,1.815765900000000099e-01 -2.719758990081129757e-01,1.781408800000000014e-01 -2.756786708048760137e-01,1.752968599999999988e-01 -2.793814375635009783e-01,1.719374999999999931e-01 -2.830842088906149745e-01,1.693416100000000035e-01 -2.867869838380989744e-01,1.675664900000000124e-01 -2.904897414218740037e-01,1.660967600000000099e-01 -2.941925113219470145e-01,1.641498500000000138e-01 -2.978952878247769775e-01,1.626037800000000033e-01 -3.015980640661389822e-01,1.622411300000000112e-01 -3.053008297662639925e-01,1.600270000000000026e-01 -3.090036058188079804e-01,1.582709599999999883e-01 -3.127063662340199834e-01,1.588054000000000132e-01 -3.164091289357259806e-01,1.555223799999999879e-01 -3.201118922087349827e-01,1.558086899999999997e-01 -3.238146577102329893e-01,1.522011799999999915e-01 -3.275174398078899984e-01,1.511132000000000031e-01 -3.312202054641589788e-01,1.498725300000000038e-01 -3.349229684661539919e-01,1.487463699999999889e-01 -3.386257507253350174e-01,1.467803699999999933e-01 -3.423285277631040180e-01,1.462077599999999922e-01 -3.460313098688759803e-01,1.455587899999999935e-01 -3.497340843978539726e-01,1.438981900000000091e-01 -3.534368548973220170e-01,1.435927899999999979e-01 -3.571396277070609804e-01,1.424284600000000067e-01 -3.608424115979880220e-01,1.403861200000000031e-01 -3.645451748619150112e-01,1.388209599999999933e-01 -3.682479482418780092e-01,1.395462799999999948e-01 -3.719507148678439790e-01,1.394699199999999972e-01 -3.756534823993880057e-01,1.378093400000000024e-01 -3.793562598185509782e-01,1.397371400000000097e-01 -3.830590445511389830e-01,1.369885799999999987e-01 -3.867618196650879914e-01,1.352325400000000122e-01 -3.904645965736759927e-01,1.344117800000000085e-01 -3.941673743717780121e-01,1.352897999999999878e-01 -3.978701467445500128e-01,1.350798500000000013e-01 -4.015729110820959735e-01,1.364732100000000115e-01 -4.052756738106519929e-01,1.360151199999999894e-01 -4.089784440474539817e-01,1.343545200000000051e-01 -4.126812051170359874e-01,1.334764999999999979e-01 -4.163839823464289824e-01,1.348316999999999988e-01 -4.200867608502339978e-01,1.327511799999999964e-01 -4.237895281717150020e-01,1.328657099999999980e-01 -4.274922955492609922e-01,1.326366700000000121e-01 -4.311950608652529993e-01,1.345644699999999916e-01 -4.348978367883050145e-01,1.347171799999999919e-01 -4.386006109390599983e-01,1.339536899999999864e-01 -4.423033816555619890e-01,1.344881400000000060e-01 -4.460061481197620248e-01,1.334764999999999979e-01 -4.497089255048620227e-01,1.329802300000000048e-01 -4.534116841912019802e-01,1.325984900000000133e-01 -4.571144409164379918e-01,1.333810699999999905e-01 -4.608171930287809914e-01,1.330947600000000064e-01 -4.645199433844570125e-01,1.327511799999999964e-01 -4.682226940058070164e-01,1.344308700000000079e-01 -4.719254492733059858e-01,1.331520200000000098e-01 -4.756282149010069848e-01,1.327129999999999976e-01 -4.793309824757879811e-01,1.330184000000000089e-01 -4.830337465492069993e-01,1.327893599999999952e-01 -4.867365114519550118e-01,1.322549100000000033e-01 -4.904392634454179944e-01,1.331711100000000092e-01 -4.941420325451599815e-01,1.326366700000000121e-01 -4.978448166265099784e-01,1.318731599999999893e-01 -5.015475878963390199e-01,1.326557399999999942e-01 -5.052503561830520296e-01,1.325030500000000111e-01 -5.089531059234190247e-01,1.332474499999999895e-01 -5.126558551861970514e-01,1.320449599999999890e-01 -5.163586149748520260e-01,1.324266900000000136e-01 -5.200613856412800162e-01,1.323312700000000008e-01 -5.237641536728180336e-01,1.319876899999999909e-01 -5.274669217737240068e-01,1.325412199999999874e-01 -5.311696914113630541e-01,1.314532499999999937e-01 -5.348724514051339529e-01,1.329802300000000048e-01 -5.385752073729810352e-01,1.316822900000000074e-01 -5.422779743910930428e-01,1.313577999999999968e-01 -5.459807403527979774e-01,1.323503600000000002e-01 -5.496835012047329716e-01,1.312051100000000137e-01 -5.533862702158910407e-01,1.308997100000000025e-01 -5.570890199884339644e-01,1.310905800000000121e-01 -5.607917842653520335e-01,1.308233599999999996e-01 -5.644945370801970341e-01,1.301171299999999975e-01 -5.681972991912119797e-01,1.298690000000000122e-01 -5.719000574498539491e-01,1.299262599999999879e-01 -5.756028184736490250e-01,1.294299800000000000e-01 -5.793055818984890193e-01,1.279602599999999923e-01 -5.830083510785419865e-01,1.286283099999999957e-01 -5.867111191605060005e-01,1.265668899999999875e-01 -5.904138858662839606e-01,1.273494699999999924e-01 -5.941166416914660520e-01,1.250971600000000128e-01 -5.978194119813919905e-01,1.211079099999999992e-01 -6.015221821877869690e-01,1.183975099999999975e-01 -6.052249553911169810e-01,1.124422600000000022e-01 -6.089277236827740358e-01,1.130721400000000015e-01 -6.126304784124010361e-01,1.092164999999999941e-01 -6.163332498932819759e-01,1.068305799999999944e-01 -6.200360270331930490e-01,1.043301400000000018e-01 -6.237387979524009474e-01,1.053035900000000025e-01 -6.274415623946070220e-01,1.005699300000000018e-01 -6.311443259250589799e-01,9.950104399999999683e-02 -6.348471145123250059e-01,9.854667599999999972e-02 -6.385498842217429694e-01,9.921473299999999940e-02 -6.422526505860669532e-01,9.541635199999999595e-02 -6.459554301019240219e-01,9.980643499999999890e-02 -6.496582316874179863e-01,9.866119900000000498e-02 -6.533610045029599744e-01,9.560722100000000612e-02 -6.570637746627370213e-01,9.755413200000000173e-02 -6.607665637167929873e-01,9.612258499999999650e-02 -6.644693393532290493e-01,9.430928500000000658e-02 -6.681721190805980370e-01,9.661885400000000401e-02 -6.718748911568019899e-01,9.366031700000000682e-02 -6.755776702528829558e-01,9.522547600000000334e-02 -6.792804414992950068e-01,9.535908699999999516e-02 -6.829832201919220358e-01,9.316404200000000246e-02 -6.866860016405059719e-01,9.450016199999999866e-02 -6.903887789002780551e-01,9.308769599999999755e-02 -6.940915554740280102e-01,9.343126399999999998e-02 -6.977943250050440138e-01,9.324039500000000369e-02 -7.014970936568940552e-01,9.350761800000000068e-02 -7.051998752329049491e-01,9.339309499999999542e-02 -7.089026390719930237e-01,9.291590800000000538e-02 -7.126054044364960038e-01,9.303042999999999729e-02 -7.163081847714160011e-01,9.262959699999999408e-02 -7.200109540889150228e-01,9.324039500000000369e-02 -7.237137113549270140e-01,9.261051600000000383e-02 -7.274164835368069904e-01,9.249598500000000278e-02 -7.311192520713369891e-01,9.240055099999999744e-02 -7.348220356301270462e-01,9.253416200000000313e-02 -7.385247998076800435e-01,9.209515199999999957e-02 -7.422275681050030105e-01,9.234328599999999665e-02 -7.459303398169290222e-01,9.366031700000000682e-02 -7.496331189215349466e-01,9.333582999999999463e-02 -7.533358915465799832e-01,9.322130700000000325e-02 -7.570386845170039569e-01,9.264868499999999452e-02 -7.607414599617690065e-01,9.253416200000000313e-02 -7.644442241361509849e-01,9.243872799999999779e-02 -7.681469841679049448e-01,9.230511600000000649e-02 -7.718497597410769462e-01,9.310678399999999799e-02 -7.755525330801089634e-01,9.165614800000000673e-02 -7.792553077720439925e-01,9.159888300000000594e-02 -7.829580729262249905e-01,9.207606299999999966e-02 -7.866608525527829521e-01,9.175158299999999767e-02 -7.903636394149520239e-01,9.177067099999999811e-02 -7.940664067981429985e-01,9.236237399999999709e-02 -7.977691805707299855e-01,9.241963899999999787e-02 -8.014719720619220000e-01,9.320221800000000334e-02 -8.051747402050569713e-01,9.199971699999999475e-02 -8.088775134708300341e-01,9.167522899999999697e-02 -8.125802783307759514e-01,9.322130700000000325e-02 -8.162830430544779636e-01,9.190428300000000328e-02 -8.199858070953079947e-01,9.167522899999999697e-02 -8.236885818894390532e-01,9.285865000000000091e-02 -8.273913629032729755e-01,9.180884100000000214e-02 -8.310941115147779668e-01,9.150344900000000059e-02 -8.347968753635589545e-01,9.186610600000000293e-02 -8.384996539669460347e-01,9.201880499999999519e-02 -8.422024181078430205e-01,9.320221800000000334e-02 -8.459051854277029880e-01,9.131257199999999463e-02 -8.496079662694989709e-01,9.117896100000000281e-02 -8.533107464240720086e-01,9.133166099999999454e-02 -8.570135270634630098e-01,9.089265000000000538e-02 -8.607163089963270064e-01,9.058725099999999364e-02 -8.644190736264629749e-01,9.051090500000000261e-02 -8.681218605582039505e-01,9.033911699999999656e-02 -8.718246446641879643e-01,9.041546999999999779e-02 -8.755274158203549817e-01,9.112169600000000202e-02 -8.792301926070029694e-01,8.946110300000000015e-02 -8.829329576317990202e-01,8.999554799999999466e-02 -8.866357278062549918e-01,8.921296900000000307e-02 -8.903384941029659494e-01,8.881212800000000407e-02 -8.940412563639039689e-01,8.797229099999999413e-02 -8.977440369421989530e-01,8.709427000000000141e-02 -9.014468007390410431e-01,8.503283600000000053e-02 -1.000000000000000000e+00,7.601530817929870454e-02 +# OCP data for LG M50 graphite anode +# sto,ocp +# extra point to avoid extrapolation +0,1.81772748379334 +# experimentally measured data +0.0312962309919435,1.08288070000000 +0.0349990174231383,0.995937940000000 +0.0387017984426739,0.900233980000000 +0.0424045760400907,0.796494310000000 +0.0461073567667969,0.733544290000000 +0.0498101472864833,0.666643140000000 +0.0535129169550513,0.641371490000000 +0.0572156800080452,0.598138690000000 +0.0609184495648372,0.567083600000000 +0.0646212178896581,0.547461810000000 +0.0683239899372943,0.530683990000000 +0.0720267516206726,0.513047340000000 +0.0757295119643203,0.493940920000000 +0.0794322723972667,0.479262740000000 +0.0831350309398288,0.460652590000000 +0.0868377862970441,0.459927260000000 +0.0905405444092937,0.438015010000000 +0.0942433124962634,0.424386650000000 +0.0979460700715639,0.411502690000000 +0.101648825029857,0.400336590000000 +0.105351579051700,0.389571340000000 +0.109054336366249,0.377565380000000 +0.112757097430127,0.362925410000000 +0.116459849153289,0.343570860000000 +0.120162608086248,0.340631400000000 +0.123865356984332,0.322994680000000 +0.127568112208028,0.313794580000000 +0.131270864460474,0.307953860000000 +0.134973620696607,0.292073190000000 +0.138676382618935,0.286976870000000 +0.142379130218803,0.274054770000000 +0.146081890204289,0.267049700000000 +0.149784649866357,0.258574930000000 +0.153487405398072,0.252657830000000 +0.157190175658005,0.248267770000000 +0.160892939040625,0.241434500000000 +0.164595700624986,0.233627780000000 +0.168298470128353,0.229562180000000 +0.172001223759462,0.223702360000000 +0.175703987585269,0.221812710000000 +0.179406738528351,0.220896510000000 +0.183109501186799,0.219426800000000 +0.186812285743759,0.218300640000000 +0.190515043988865,0.218453330000000 +0.194217798449951,0.217537150000000 +0.197920560933317,0.217193570000000 +0.201623337530448,0.216353730000000 +0.205326099907333,0.216678220000000 +0.209028863421514,0.217384440000000 +0.212731637811268,0.214693130000000 +0.216434400018689,0.215418460000000 +0.220137158758552,0.214654950000000 +0.223839932905728,0.213547900000000 +0.227542704859571,0.213929640000000 +0.231245472941435,0.210742060000000 +0.234948246608884,0.208737880000000 +0.238651007030528,0.204653190000000 +0.242353771096756,0.202057320000000 +0.246056534779736,0.197743580000000 +0.249759296042551,0.194441470000000 +0.253462075305427,0.191902850000000 +0.257164855541649,0.188505310000000 +0.260867623398810,0.185813990000000 +0.264570388343682,0.183275370000000 +0.268273141960127,0.181576590000000 +0.271975899008113,0.178140880000000 +0.275678670804876,0.175296860000000 +0.279381437563501,0.171937500000000 +0.283084208890615,0.169341610000000 +0.286786983838099,0.167566490000000 +0.290489741421874,0.166096760000000 +0.294192511321947,0.164149850000000 +0.297895287824777,0.162603780000000 +0.301598064066139,0.162241130000000 +0.305300829766264,0.160027000000000 +0.309003605818808,0.158270960000000 +0.312706366234020,0.158805400000000 +0.316409128935726,0.155522380000000 +0.320111892208735,0.155808690000000 +0.323814657710233,0.152201180000000 +0.327517439807890,0.151113200000000 +0.331220205464159,0.149872530000000 +0.334922968466154,0.148746370000000 +0.338625750725335,0.146780370000000 +0.342328527763104,0.146207760000000 +0.346031309868876,0.145558790000000 +0.349734084397854,0.143898190000000 +0.353436854897322,0.143592790000000 +0.357139627707061,0.142428460000000 +0.360842411597988,0.140386120000000 +0.364545174861915,0.138820960000000 +0.368247948241878,0.139546280000000 +0.371950714867844,0.139469920000000 +0.375653482399388,0.137809340000000 +0.379356259818551,0.139737140000000 +0.383059044551139,0.136988580000000 +0.386761819665088,0.135232540000000 +0.390464596573676,0.134411780000000 +0.394167374371778,0.135289800000000 +0.397870146744550,0.135079850000000 +0.401572911082096,0.136473210000000 +0.405275673810652,0.136015120000000 +0.408978444047454,0.134354520000000 +0.412681205117036,0.133476500000000 +0.416383982346429,0.134831700000000 +0.420086760850234,0.132751180000000 +0.423789528171715,0.132865710000000 +0.427492295549261,0.132636670000000 +0.431195060865253,0.134564470000000 +0.434897836788305,0.134717180000000 +0.438600610939060,0.133953690000000 +0.442303381655562,0.134488140000000 +0.446006148119762,0.133476500000000 +0.449708925504862,0.132980230000000 +0.453411684191202,0.132598490000000 +0.457114440916438,0.133381070000000 +0.460817193028781,0.133094760000000 +0.464519943384457,0.132751180000000 +0.468222694005807,0.134430870000000 +0.471925449273306,0.133152020000000 +0.475628214901007,0.132713000000000 +0.479330982475788,0.133018400000000 +0.483033746549207,0.132789360000000 +0.486736511451955,0.132254910000000 +0.490439263445418,0.133171110000000 +0.494142032545160,0.132636670000000 +0.497844816626510,0.131873160000000 +0.501547587896339,0.132655740000000 +0.505250356183052,0.132503050000000 +0.508953105923419,0.133247450000000 +0.512655855186197,0.132044960000000 +0.516358614974852,0.132426690000000 +0.520061385641280,0.132331270000000 +0.523764153672818,0.131987690000000 +0.527466921773724,0.132541220000000 +0.531169691411363,0.131453250000000 +0.534872451405134,0.132980230000000 +0.538575207372981,0.131682290000000 +0.542277974391093,0.131357800000000 +0.545980740352798,0.132350360000000 +0.549683501204733,0.131205110000000 +0.553386270215891,0.130899710000000 +0.557089019988434,0.131090580000000 +0.560791784265352,0.130823360000000 +0.564494537080197,0.130117130000000 +0.568197299191212,0.129869000000000 +0.571900057449854,0.129926260000000 +0.575602818473649,0.129429980000000 +0.579305581898489,0.127960260000000 +0.583008351078542,0.128628310000000 +0.586711119160506,0.126566890000000 +0.590413885866284,0.127349470000000 +0.594116641691466,0.125097160000000 +0.597819411981392,0.121107910000000 +0.601522182187787,0.118397510000000 +0.605224955391117,0.112442260000000 +0.608927723682774,0.113072140000000 +0.612630478412401,0.109216500000000 +0.616333249893282,0.106830580000000 +0.620036027033193,0.104330140000000 +0.623738797952401,0.105303590000000 +0.627441562394607,0.100569930000000 +0.631144325925059,0.0995010440000000 +0.634847114512325,0.0985466760000000 +0.638549884221743,0.0992147330000000 +0.642252650586067,0.0954163520000000 +0.645955430101924,0.0998064350000000 +0.649658231687418,0.0986611990000000 +0.653361004502960,0.0956072210000000 +0.657063774662737,0.0975541320000000 +0.660766563716793,0.0961225850000000 +0.664469339353229,0.0943092850000000 +0.668172119080598,0.0966188540000000 +0.671874891156802,0.0936603170000000 +0.675577670252883,0.0952254760000000 +0.679280441499295,0.0953590870000000 +0.682983220191922,0.0931640420000000 +0.686686001640506,0.0945001620000000 +0.690388778900278,0.0930876960000000 +0.694091555474028,0.0934312640000000 +0.697794325005044,0.0932403950000000 +0.701497093656894,0.0935076180000000 +0.705199875232905,0.0933930950000000 +0.708902639071993,0.0929159080000000 +0.712605404436496,0.0930304300000000 +0.716308184771416,0.0926295970000000 +0.720010954088915,0.0932403950000000 +0.723713711354927,0.0926105160000000 +0.727416483536807,0.0924959850000000 +0.731119252071337,0.0924005510000000 +0.734822035630127,0.0925341620000000 +0.738524799807680,0.0920951520000000 +0.742227568105003,0.0923432860000000 +0.745930339816929,0.0936603170000000 +0.749633118921535,0.0933358300000000 +0.753335891546580,0.0932213070000000 +0.757038684517004,0.0926486850000000 +0.760741459961769,0.0925341620000000 +0.764444224136151,0.0924387280000000 +0.768146984167905,0.0923051160000000 +0.771849759741077,0.0931067840000000 +0.775552533080109,0.0916561480000000 +0.779255307772044,0.0915988830000000 +0.782958072926225,0.0920760630000000 +0.786660852552783,0.0917515830000000 +0.790363639414952,0.0917706710000000 +0.794066406798143,0.0923623740000000 +0.797769180570730,0.0924196390000000 +0.801471972061922,0.0932022180000000 +0.805174740205057,0.0919997170000000 +0.808877513470830,0.0916752290000000 +0.812580278330776,0.0932213070000000 +0.816283043054478,0.0919042830000000 +0.819985807095308,0.0916752290000000 +0.823688581889439,0.0928586500000000 +0.827391362903273,0.0918088410000000 +0.831094111514778,0.0915034490000000 +0.834796875363559,0.0918661060000000 +0.838499653966946,0.0920188050000000 +0.842202418107843,0.0932022180000000 +0.845905185427703,0.0913125720000000 +0.849607966269499,0.0911789610000000 +0.853310746424072,0.0913316610000000 +0.857013527063463,0.0908926500000000 +0.860716308996327,0.0905872510000000 +0.864419073626463,0.0905109050000000 +0.868121860558204,0.0903391170000000 +0.871824644664188,0.0904154700000000 +0.875527415820355,0.0911216960000000 +0.879230192607003,0.0894611030000000 +0.882932957631799,0.0899955480000000 +0.886635727806255,0.0892129690000000 +0.890338494102966,0.0888121280000000 +0.894041256363904,0.0879722910000000 +0.897744036942199,0.0870942700000000 +0.901446800739041,0.0850328360000000 +# extra point to avoid extrapolation +1,0.0760153081792987 \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/graphite_ocp_Ecker2015.csv b/pybamm/input/parameters/lithium_ion/graphite_ocp_Ecker2015.csv index a59513380a..a578a7fa09 100644 --- a/pybamm/input/parameters/lithium_ion/graphite_ocp_Ecker2015.csv +++ b/pybamm/input/parameters/lithium_ion/graphite_ocp_Ecker2015.csv @@ -1,41 +1,41 @@ -1.515151515151400008e-03,1.432515337423312829e+00 -6.060606060606099632e-03,8.619631901840490995e-01 -1.060606060606059976e-02,7.914110429447853701e-01 -1.666666666666660052e-02,6.595092024539876974e-01 -2.121212121212119953e-02,5.797546012269938487e-01 -2.272727272727270015e-02,5.245398773006135773e-01 -3.030303030303019979e-02,4.754601226993864227e-01 -3.939393939393930066e-02,4.141104294478525905e-01 -4.545454545454540030e-02,3.680981595092023273e-01 -5.303030303030289994e-02,3.312883435582820724e-01 -6.666666666666659635e-02,2.822085889570550843e-01 -7.878787878787869847e-02,2.484662576687114988e-01 -8.939393939393930344e-02,2.239263803680981990e-01 -1.015151515151514056e-01,2.208588957055215019e-01 -1.272727272727272874e-01,2.116564417177914936e-01 -1.424242424242423977e-01,2.024539877300612911e-01 -1.590909090909090884e-01,1.993865030674845940e-01 -1.772727272727271930e-01,1.932515337423311996e-01 -1.939393939393939115e-01,1.840490797546011914e-01 -2.136363636363635965e-01,1.809815950920246053e-01 -2.333333333333331983e-01,1.717791411042942917e-01 -2.575757575757575135e-01,1.656441717791410084e-01 -2.787878787878788067e-01,1.625766871165643113e-01 -3.030303030303029832e-01,1.533742331288343030e-01 -3.287878787878787956e-01,1.411042944785274034e-01 -3.515151515151515027e-01,1.349693251533740923e-01 -3.712121212121211045e-01,1.319018404907973951e-01 -3.924242424242422866e-01,1.288343558282210033e-01 -5.681818181818183433e-01,1.257668711656441118e-01 -5.878787878787878896e-01,1.226993865030674008e-01 -6.060606060606061884e-01,1.165644171779141036e-01 -6.272727272727272041e-01,1.012269938650307011e-01 -6.545454545454545414e-01,9.509202453987719572e-02 -6.742424242424243097e-01,9.509202453987719572e-02 -6.939393939393938560e-01,8.895705521472380140e-02 -7.181818181818182545e-01,8.895705521472380140e-02 -7.393939393939392701e-01,8.588957055214710423e-02 -8.909090909090910948e-01,8.282208588957069850e-02 -9.560606060606060552e-01,8.272208588957069564e-02 -9.772727272727271819e-01,7.975460122699379317e-02 -1.000000000000000000e+00,7.055214723926379883e-02 +0.0015151515151514694, 1.4325153374233128 +0.0060606060606061, 0.8619631901840491 +0.010606060606060619, 0.7914110429447854 +0.016666666666666607, 0.6595092024539877 +0.021212121212121238, 0.5797546012269938 +0.022727272727272707, 0.5245398773006136 +0.030303030303030276, 0.4754601226993864 +0.039393939393939315, 0.4141104294478526 +0.045454545454545414, 0.3680981595092023 +0.05303030303030298, 0.3312883435582821 +0.06666666666666665, 0.28220858895705514 +0.07878787878787874, 0.24846625766871155 +0.08939393939393936, 0.2239263803680982 +0.10151515151515145, 0.22085889570552153 +0.12727272727272732, 0.21165644171779152 +0.14242424242424245, 0.2024539877300613 +0.15909090909090917, 0.19938650306748462 +0.17727272727272725, 0.19325153374233128 +0.19393939393939397, 0.18404907975460127 +0.21363636363636362, 0.1809815950920246 +0.23333333333333328, 0.17177914110429437 +0.25757575757575757, 0.16564417177914104 +0.2787878787878788, 0.16257668711656437 +0.303030303030303, 0.15337423312883436 +0.32878787878787885, 0.14110429447852746 +0.35151515151515156, 0.13496932515337412 +0.3712121212121211, 0.13190184049079745 +0.39242424242424234, 0.128834355828221 +0.5681818181818183, 0.1257668711656441 +0.5878787878787879, 0.12269938650306744 +0.6060606060606062, 0.1165644171779141 +0.6272727272727272, 0.10122699386503076 +0.6545454545454545, 0.0950920245398772 +0.6742424242424243, 0.0950920245398772 +0.6939393939393939, 0.08895705521472386 +0.7181818181818183, 0.08895705521472386 +0.7393939393939393, 0.08588957055214719 +0.8909090909090911, 0.08282208588957074 +0.956060606060606, 0.08272208588957074 +0.9772727272727273, 0.07975460122699385 +1, 0.07055214723926384 diff --git a/pybamm/input/parameters/lithium_ion/graphite_ocp_Enertech_Ai2020.csv b/pybamm/input/parameters/lithium_ion/graphite_ocp_Enertech_Ai2020.csv index e048a4a787..8a5bce2874 100644 --- a/pybamm/input/parameters/lithium_ion/graphite_ocp_Enertech_Ai2020.csv +++ b/pybamm/input/parameters/lithium_ion/graphite_ocp_Enertech_Ai2020.csv @@ -1,125 +1,129 @@ -0.000000000000000000e+00,3.500000000000000000e+00 -5.000000000000000104e-04,3.000000000000000000e+00 -1.270410000000000029e-03,1.040000000000000036e+00 -1.524790000000000043e-03,1.010000000000000009e+00 -1.905950000000000005e-03,9.726538369999999656e-01 -2.223558000000000045e-03,9.424905500000000380e-01 -4.060547000000000288e-03,8.162405919999999870e-01 -4.820150999999999950e-03,7.802809280000000403e-01 -6.463942999999999772e-03,7.189626199999999967e-01 -7.413369999999999856e-03,6.913747569999999509e-01 -8.616505999999999471e-03,6.613917809999999564e-01 -9.123416999999999985e-03,6.499622320000000286e-01 -1.076822600000000053e-02,6.165173000000000458e-01 -1.266504599999999925e-02,5.833108580000000432e-01 -1.411834399999999969e-02,5.608307829999999994e-01 -1.778675199999999942e-02,5.124394759999999494e-01 -2.069469000000000170e-02,4.802513600000000160e-01 -2.398379900000000009e-02,4.484958669999999925e-01 -3.050217499999999943e-02,3.959888100000000244e-01 -3.600113499999999661e-02,3.595076810000000234e-01 -3.960666200000000081e-02,3.384779809999999833e-01 -5.914808299999999713e-02,2.563195580000000029e-01 -6.129794200000000109e-02,2.511736099999999916e-01 -7.134983300000000139e-02,2.360553240000000108e-01 -8.026552600000000370e-02,2.310092169999999889e-01 -1.192080789999999946e-01,2.232966000000000117e-01 -1.281205480000000008e-01,2.182842439999999884e-01 -1.342537069999999999e-01,2.132738590000000101e-01 -1.415845940000000081e-01,2.082283620000000002e-01 -1.508741769999999982e-01,2.032097390000000003e-01 -1.606091309999999883e-01,1.986209849999999999e-01 -1.703459569999999923e-01,1.938163760000000124e-01 -1.897477690000000106e-01,1.841669149999999866e-01 -2.092222529999999969e-01,1.767905320000000002e-01 -2.190177299999999938e-01,1.738304410000000022e-01 -2.287565789999999877e-01,1.709632610000000053e-01 -2.385525749999999889e-01,1.679035010000000105e-01 -2.483492310000000036e-01,1.646499790000000019e-01 -2.580840229999999957e-01,1.614913319999999874e-01 -2.678211839999999899e-01,1.585938299999999912e-01 -2.874153500000000139e-01,1.533991570000000082e-01 -2.972098109999999904e-01,1.510023189999999960e-01 -3.070049420000000029e-01,1.488621300000000092e-01 -3.167983959999999821e-01,1.469189110000000131e-01 -3.265340319999999741e-01,1.453281419999999935e-01 -3.363215580000000204e-01,1.440021089999999893e-01 -3.460617579999999971e-01,1.429021249999999910e-01 -3.558563920000000214e-01,1.420142620000000022e-01 -3.655930439999999781e-01,1.413160079999999930e-01 -3.753880119999999931e-01,1.407591049999999955e-01 -3.851207810000000231e-01,1.403143229999999908e-01 -3.949155770000000176e-01,1.399423220000000079e-01 -4.047174789999999911e-01,1.396178509999999873e-01 -4.145121019999999934e-01,1.393254060000000127e-01 -4.242448710000000234e-01,1.390510140000000006e-01 -4.340393309999999727e-01,1.387792969999999959e-01 -4.437702399999999825e-01,1.385174130000000059e-01 -4.535648620000000131e-01,1.382588969999999917e-01 -4.632981389999999977e-01,1.379812930000000049e-01 -4.730344559999999920e-01,1.376722260000000086e-01 -4.827665440000000197e-01,1.373293250000000021e-01 -4.925645519999999888e-01,1.369032239999999900e-01 -5.023028920000000008e-01,1.363902439999999938e-01 -5.120425950000000448e-01,1.357575809999999883e-01 -5.218331609999999898e-01,1.349471010000000137e-01 -5.315721820000000042e-01,1.339232350000000016e-01 -5.413690330000000550e-01,1.326216809999999913e-01 -5.511048309999999617e-01,1.309894739999999946e-01 -5.608997999999999484e-01,1.289649240000000086e-01 -5.706356080000000164e-01,1.265499870000000027e-01 -5.804348059999999698e-01,1.237428780000000006e-01 -5.902356920000000340e-01,1.207708339999999936e-01 -5.999774070000000181e-01,1.179296340000000054e-01 -6.097162659999999512e-01,1.153799830000000054e-01 -6.195178220000000513e-01,1.132054229999999995e-01 -6.293136350000000379e-01,1.113664770000000054e-01 -6.390491080000000323e-01,1.098554949999999975e-01 -6.487901520000000088e-01,1.085789520000000064e-01 -6.585841040000000035e-01,1.075206779999999945e-01 -6.683202480000000056e-01,1.066325360000000000e-01 -6.780550400000000533e-01,1.058937580000000045e-01 -6.878518689999999491e-01,1.052606130000000029e-01 -6.976493799999999856e-01,1.047131889999999982e-01 -7.073890720000000076e-01,1.042543650000000016e-01 -7.171880969999999689e-01,1.038456249999999970e-01 -7.269771480000000174e-01,1.034771190000000063e-01 -7.367763360000000317e-01,1.031539320000000037e-01 -7.465158659999999724e-01,1.028565409999999958e-01 -7.562591060000000143e-01,1.025874430000000004e-01 -7.660550910000000213e-01,1.023382790000000042e-01 -7.757890389999999581e-01,1.021019860000000057e-01 -7.855378610000000039e-01,1.018809049999999938e-01 -7.953297900000000364e-01,1.016764230000000019e-01 -8.050806459999999554e-01,1.014658779999999955e-01 -8.148270990000000547e-01,1.012641710000000000e-01 -8.245700030000000513e-01,1.010626349999999979e-01 -8.343708890000000045e-01,1.008704099999999937e-01 -8.441732889999999934e-01,1.006809599999999999e-01 -8.539131869999999624e-01,1.004892230000000025e-01 -8.636505100000000379e-01,1.003004370000000062e-01 -8.733920729999999910e-01,1.000997180000000042e-01 -8.831268650000000386e-01,9.987710399999999433e-02 -8.929182860000000055e-01,9.962898500000000324e-02 -9.027085160000000164e-01,9.933261599999999858e-02 -9.124433079999999530e-01,9.895841900000000579e-02 -9.222325329999999655e-01,9.844254199999999400e-02 -9.320197239999999939e-01,9.768364300000000056e-02 -9.418128319999999887e-01,9.649199999999999444e-02 -9.516023919999999636e-01,9.451079099999999678e-02 -9.613927949999999667e-01,9.113681699999999497e-02 -9.701776519999999460e-01,8.611518599999999635e-02 -9.760513579999999800e-01,8.107874800000000604e-02 -9.804134490000000479e-01,7.604036999999999602e-02 -9.838878039999999769e-01,7.099153499999999450e-02 -9.867927029999999933e-01,6.589832800000000601e-02 -9.892550959999999449e-01,6.084404699999999833e-02 -9.914014070000000123e-01,5.581011799999999884e-02 -9.933599290000000304e-01,5.067069800000000013e-02 -9.951301540000000445e-01,4.556240100000000237e-02 -9.967763039999999464e-01,4.039266300000000226e-02 -9.982294400000000234e-01,3.526127200000000322e-02 -9.992410659999999556e-01,3.024265799999999865e-02 -9.997469610000000451e-01,2.485076799999999878e-02 -9.999364480000000333e-01,1.925150200000000020e-02 -1.000000000000000000e+00,4.994677999999999791e-03 +# OCP for graphite from Ai 2020 +# sto,ocp [V] +# extra point to avoid extrapolation +0,3.5 +# experimentally measured data +0.0005,3 +0.00127041,1.04 +0.00152479,1.01 +0.00190595,0.972653837 +0.002223558,0.94249055 +0.004060547,0.816240592 +0.004820151,0.780280928 +0.006463943,0.71896262 +0.00741337,0.691374757 +0.008616506,0.661391781 +0.009123417,0.649962232 +0.010768226,0.6165173 +0.012665046,0.583310858 +0.014118344,0.560830783 +0.017786752,0.512439476 +0.02069469,0.48025136 +0.023983799,0.448495867 +0.030502175,0.39598881 +0.036001135,0.359507681 +0.039606662,0.338477981 +0.059148083,0.256319558 +0.061297942,0.25117361 +0.071349833,0.236055324 +0.080265526,0.231009217 +0.119208079,0.2232966 +0.128120548,0.218284244 +0.134253707,0.213273859 +0.141584594,0.208228362 +0.150874177,0.203209739 +0.160609131,0.198620985 +0.170345957,0.193816376 +0.189747769,0.184166915 +0.209222253,0.176790532 +0.21901773,0.173830441 +0.228756579,0.170963261 +0.238552575,0.167903501 +0.248349231,0.164649979 +0.258084023,0.161491332 +0.267821184,0.15859383 +0.28741535,0.153399157 +0.297209811,0.151002319 +0.307004942,0.14886213 +0.316798396,0.146918911 +0.326534032,0.145328142 +0.336321558,0.144002109 +0.346061758,0.142902125 +0.355856392,0.142014262 +0.365593044,0.141316008 +0.375388012,0.140759105 +0.385120781,0.140314323 +0.394915577,0.139942322 +0.404717479,0.139617851 +0.414512102,0.139325406 +0.424244871,0.139051014 +0.434039331,0.138779297 +0.44377024,0.138517413 +0.453564862,0.138258897 +0.463298139,0.137981293 +0.473034456,0.137672226 +0.482766544,0.137329325 +0.492564552,0.136903224 +0.502302892,0.136390244 +0.512042595,0.135757581 +0.521833161,0.134947101 +0.531572182,0.133923235 +0.541369033,0.132621681 +0.551104831,0.130989474 +0.5608998,0.128964924 +0.570635608,0.126549987 +0.580434806,0.123742878 +0.590235692,0.120770834 +0.599977407,0.117929634 +0.609716266,0.115379983 +0.619517822,0.113205423 +0.629313635,0.111366477 +0.639049108,0.109855495 +0.648790152,0.108578952 +0.658584104,0.107520678 +0.668320248,0.106632536 +0.67805504,0.105893758 +0.687851869,0.105260613 +0.69764938,0.104713189 +0.707389072,0.104254365 +0.717188097,0.103845625 +0.726977148,0.103477119 +0.736776336,0.103153932 +0.746515866,0.102856541 +0.756259106,0.102587443 +0.766055091,0.102338279 +0.775789039,0.102101986 +0.785537861,0.101880905 +0.79532979,0.101676423 +0.805080646,0.101465878 +0.814827099,0.101264171 +0.824570003,0.101062635 +0.834370889,0.10087041 +0.844173289,0.10068096 +0.853913187,0.100489223 +0.86365051,0.100300437 +0.873392073,0.100099718 +0.883126865,0.099877104 +0.892918286,0.099628985 +0.902708516,0.099332616 +0.912443308,0.098958419 +0.922232533,0.098442542 +0.932019724,0.097683643 +0.941812832,0.096492 +0.951602392,0.094510791 +0.961392795,0.091136817 +0.970177652,0.086115186 +0.976051358,0.081078748 +0.980413449,0.07604037 +0.983887804,0.070991535 +0.986792703,0.065898328 +0.989255096,0.060844047 +0.991401407,0.055810118 +0.993359929,0.050670698 +0.995130154,0.045562401 +0.996776304,0.040392663 +0.99822944,0.035261272 +0.999241066,0.030242658 +0.999746961,0.024850768 +0.999936448,0.019251502 +1,0.004994678 \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/lico2_ocp_Ai2020.csv b/pybamm/input/parameters/lithium_ion/lico2_ocp_Ai2020.csv index 8a7c457514..ffd7886e2b 100644 --- a/pybamm/input/parameters/lithium_ion/lico2_ocp_Ai2020.csv +++ b/pybamm/input/parameters/lithium_ion/lico2_ocp_Ai2020.csv @@ -1,446 +1,448 @@ -4.299999999999999933e-01,4.299999999999999822e+00 -4.366397839999999753e-01,4.279907752999999815e+00 -4.379061430000000255e-01,4.276472669000000337e+00 -4.391725020000000201e-01,4.273800937999999938e+00 -4.404388599999999876e-01,4.271129206000000345e+00 -4.417052189999999823e-01,4.268648312999999916e+00 -4.429715779999999770e-01,4.266167419000000294e+00 -4.442379370000000272e-01,4.263686525999999866e+00 -4.455042960000000218e-01,4.261205633000000326e+00 -4.467706550000000165e-01,4.258724738999999815e+00 -4.480370140000000112e-01,4.256243846000000275e+00 -4.493033730000000059e-01,4.253762951999999764e+00 -4.505697320000000006e-01,4.251282059000000224e+00 -4.518360900000000235e-01,4.248992002999999684e+00 -4.531024490000000182e-01,4.246511110000000144e+00 -4.543688080000000129e-01,4.244221053999999604e+00 -4.556351670000000076e-01,4.241740159999999982e+00 -4.569015260000000023e-01,4.239259267000000442e+00 -4.581678849999999970e-01,4.236969210999999902e+00 -4.594342439999999916e-01,4.234679156000000333e+00 -4.607006029999999863e-01,4.232198261999999822e+00 -4.619669610000000093e-01,4.229717369000000282e+00 -4.632333200000000040e-01,4.227236474999999771e+00 -4.644996789999999987e-01,4.225137258000000173e+00 -4.657660379999999933e-01,4.222656363999999662e+00 -4.670323969999999880e-01,4.220366309000000093e+00 -4.682987559999999827e-01,4.217885414999999583e+00 -4.695651149999999774e-01,4.215595360000000014e+00 -4.708314740000000276e-01,4.213305304000000362e+00 -4.720978330000000223e-01,4.211015248999999905e+00 -4.733641909999999897e-01,4.208534355000000282e+00 -4.746305499999999844e-01,4.206244299999999825e+00 -4.758969089999999791e-01,4.203954244000000173e+00 -4.771632679999999738e-01,4.201664188999999716e+00 -4.784296270000000240e-01,4.199374133000000064e+00 -4.796959860000000186e-01,4.197084077999999607e+00 -4.809623450000000133e-01,4.194794021999999956e+00 -4.822287040000000080e-01,4.192503967000000387e+00 -4.834950630000000027e-01,4.190213910999999847e+00 -4.847614210000000257e-01,4.187923856000000278e+00 -4.860277800000000203e-01,4.185824637999999709e+00 -4.872941390000000150e-01,4.183534582000000057e+00 -4.885604980000000097e-01,4.181053688999999629e+00 -4.898268570000000044e-01,4.178954470999999948e+00 -4.910932159999999991e-01,4.176855254000000350e+00 -4.923595749999999938e-01,4.174565197999999810e+00 -4.936259339999999884e-01,4.172275143000000241e+00 -4.948922920000000114e-01,4.169985086999999702e+00 -4.961586510000000061e-01,4.167885870000000104e+00 -4.974250100000000008e-01,4.165786652000000423e+00 -4.986913689999999955e-01,4.163687434999999937e+00 -4.999577279999999901e-01,4.161588217000000256e+00 -5.012240869999999848e-01,4.159298160999999716e+00 -5.024904460000000350e-01,4.157389782000000089e+00 -5.037568049999999742e-01,4.155290564000000408e+00 -5.050231630000000527e-01,4.153191346999999922e+00 -5.062895219999999918e-01,4.151092129000000241e+00 -5.075558810000000420e-01,4.148992911999999755e+00 -5.088222399999999812e-01,4.146893694000000075e+00 -5.100885990000000314e-01,4.144794476000000394e+00 -5.113549579999999706e-01,4.142504420999999937e+00 -5.126213170000000208e-01,4.140405203000000256e+00 -5.138876759999999599e-01,4.138305985999999770e+00 -5.151540350000000101e-01,4.136206768000000089e+00 -5.164203929999999776e-01,4.134107550999999603e+00 -5.176867520000000278e-01,4.131817494999999951e+00 -5.189531109999999670e-01,4.129718278000000353e+00 -5.202194700000000172e-01,4.127619059999999784e+00 -5.214858289999999563e-01,4.125519842000000104e+00 -5.227521880000000065e-01,4.123229786999999646e+00 -5.240185469999999457e-01,4.121130568999999966e+00 -5.252849059999999959e-01,4.119222190000000339e+00 -5.265512639999999633e-01,4.116932133999999799e+00 -5.278176220000000418e-01,4.115023755000000172e+00 -5.290839800000000093e-01,4.112733698999999632e+00 -5.303503379999999767e-01,4.110634480999999951e+00 -5.316166970000000269e-01,4.108726102000000324e+00 -5.328830559999999661e-01,4.106817721999999726e+00 -5.341494150000000163e-01,4.104718505000000128e+00 -5.354157739999999555e-01,4.102619286999999559e+00 -5.366821330000000057e-01,4.100901744999999821e+00 -5.379484919999999448e-01,4.098611690000000252e+00 -5.392148509999999950e-01,4.096703309999999654e+00 -5.404812100000000452e-01,4.094985768999999998e+00 -5.417475680000000127e-01,4.092886551000000317e+00 -5.430139269999999518e-01,4.090978170999999719e+00 -5.442802860000000020e-01,4.089069792000000092e+00 -5.455466450000000522e-01,4.087352250000000353e+00 -5.468130039999999914e-01,4.085443870999999838e+00 -5.480793630000000416e-01,4.083535491000000128e+00 -5.493457219999999808e-01,4.081817949000000390e+00 -5.506120810000000310e-01,4.079909569999999874e+00 -5.518784389999999984e-01,4.078192028000000136e+00 -5.531447980000000486e-01,4.076474486000000397e+00 -5.544111569999999878e-01,4.074566106999999882e+00 -5.556775160000000380e-01,4.072848565000000143e+00 -5.569438749999999771e-01,4.071131023999999599e+00 -5.582102340000000273e-01,4.069413481999999860e+00 -5.594765929999999665e-01,4.067695940000000121e+00 -5.607429520000000167e-01,4.065978398999999577e+00 -5.620093109999999559e-01,4.064451694999999809e+00 -5.632756690000000344e-01,4.062734153000000070e+00 -5.645420279999999735e-01,4.061207450000000385e+00 -5.658083870000000237e-01,4.059299069999999787e+00 -5.670747459999999629e-01,4.057772366000000019e+00 -5.683411050000000131e-01,4.056054825000000363e+00 -5.696074639999999523e-01,4.054528120999999707e+00 -5.708738230000000025e-01,4.052810578999999969e+00 -5.721401820000000527e-01,4.051283876000000284e+00 -5.734065409999999918e-01,4.049566333999999657e+00 -5.746728989999999593e-01,4.048039629999999889e+00 -5.759392580000000095e-01,4.046322089000000233e+00 -5.772056169999999486e-01,4.044795384999999577e+00 -5.784719759999999988e-01,4.043268680999999809e+00 -5.797383350000000490e-01,4.041551140000000153e+00 -5.810046939999999882e-01,4.040024436000000385e+00 -5.822710530000000384e-01,4.038306893999999758e+00 -5.835374119999999776e-01,4.036971029000000044e+00 -5.848037699999999450e-01,4.035253487000000305e+00 -5.860701289999999952e-01,4.033726782999999649e+00 -5.873364880000000454e-01,4.032200079999999964e+00 -5.886028469999999846e-01,4.030673376000000196e+00 -5.898692060000000348e-01,4.029146672000000429e+00 -5.911355649999999740e-01,4.027619967999999773e+00 -5.924019240000000242e-01,4.026093265000000088e+00 -5.936682829999999633e-01,4.024566561000000320e+00 -5.949346420000000135e-01,4.023039856999999664e+00 -5.962009999999999810e-01,4.021703991999999950e+00 -5.974673590000000312e-01,4.020177288000000182e+00 -5.987337179999999703e-01,4.018841422000000385e+00 -6.000000770000000205e-01,4.017314718999999812e+00 -6.012664359999999597e-01,4.015788015000000044e+00 -6.025327950000000099e-01,4.014261311000000276e+00 -6.037991539999999491e-01,4.012925444999999591e+00 -6.050655129999999993e-01,4.011589579999999877e+00 -6.063318720000000495e-01,4.010253714000000080e+00 -6.075982300000000169e-01,4.008727010000000313e+00 -6.088645889999999561e-01,4.007391144999999710e+00 -6.101309480000000063e-01,4.006055278999999913e+00 -6.113973069999999455e-01,4.004719413000000117e+00 -6.126636659999999956e-01,4.003383547000000320e+00 -6.139300250000000458e-01,4.001856843999999747e+00 -6.151963839999999850e-01,4.000711815999999921e+00 -6.164627430000000352e-01,3.999375950000000124e+00 -6.177291010000000027e-01,3.997849246999999995e+00 -6.189954600000000529e-01,3.996704219000000169e+00 -6.202618189999999920e-01,3.995368352999999928e+00 -6.215281780000000422e-01,3.994032487000000131e+00 -6.227945369999999814e-01,3.992887459999999944e+00 -6.240608960000000316e-01,3.991551594000000147e+00 -6.253272549999999708e-01,3.990215727999999906e+00 -6.265936140000000210e-01,3.989070700000000080e+00 -6.278599729999999601e-01,3.987734834999999922e+00 -6.291263310000000386e-01,3.986398969000000125e+00 -6.303926899999999778e-01,3.985253940999999855e+00 -6.316590490000000280e-01,3.984108913000000030e+00 -6.329254079999999671e-01,3.982773047999999871e+00 -6.341917670000000173e-01,3.981628020000000046e+00 -6.354581259999999565e-01,3.980292153999999805e+00 -6.367244850000000067e-01,3.979147125999999979e+00 -6.379908439999999459e-01,3.978192937000000207e+00 -6.392572020000000244e-01,3.976857070999999966e+00 -6.405235609999999635e-01,3.975712043000000140e+00 -6.417899200000000137e-01,3.974567014999999870e+00 -6.430562789999999529e-01,3.973421988000000127e+00 -6.443226380000000031e-01,3.972276959999999857e+00 -6.455889970000000533e-01,3.970941094000000060e+00 -6.468553559999999925e-01,3.969986904000000205e+00 -6.481217150000000427e-01,3.968841877000000018e+00 -6.493880739999999818e-01,3.967696849000000192e+00 -6.506544319999999493e-01,3.966742658999999893e+00 -6.519207909999999995e-01,3.965597631000000067e+00 -6.531871500000000497e-01,3.964452602999999797e+00 -6.544535089999999888e-01,3.963498414000000025e+00 -6.557198680000000390e-01,3.962353386000000199e+00 -6.569862269999999782e-01,3.961208357999999929e+00 -6.582525860000000284e-01,3.960254168000000075e+00 -6.595189449999999676e-01,3.959109140999999887e+00 -6.607853040000000178e-01,3.958154951000000032e+00 -6.620516619999999852e-01,3.957200761000000178e+00 -6.633180210000000354e-01,3.956055732999999908e+00 -6.645843799999999746e-01,3.955101543000000053e+00 -6.658507390000000248e-01,3.954147353999999837e+00 -6.671170979999999640e-01,3.953002326000000011e+00 -6.683834570000000141e-01,3.952048136000000156e+00 -6.696498159999999533e-01,3.951284783999999828e+00 -6.709161750000000035e-01,3.950139756000000002e+00 -6.721825329999999710e-01,3.949185566999999786e+00 -6.734488920000000212e-01,3.948231376999999931e+00 -6.747152509999999603e-01,3.947277187000000076e+00 -6.759816100000000105e-01,3.946513835000000192e+00 -6.772479689999999497e-01,3.945368806999999922e+00 -6.785143279999999999e-01,3.944605456000000121e+00 -6.797806870000000501e-01,3.943651265999999822e+00 -6.810470459999999893e-01,3.942697075999999967e+00 -6.823134050000000395e-01,3.941933724000000083e+00 -6.835797630000000069e-01,3.940979533999999784e+00 -6.848461219999999461e-01,3.940025343999999929e+00 -6.861124809999999963e-01,3.939261993000000128e+00 -6.873788400000000465e-01,3.938307802999999829e+00 -6.886451989999999856e-01,3.937544450999999945e+00 -6.899115679999999751e-01,3.936590261000000091e+00 -6.911779270000000253e-01,3.935826909000000207e+00 -6.924442859999999644e-01,3.934872719999999990e+00 -6.937106450000000146e-01,3.934109368000000106e+00 -6.949770039999999538e-01,3.933346015999999779e+00 -6.962433630000000040e-01,3.932582663999999895e+00 -6.975097220000000542e-01,3.931819312000000011e+00 -6.987760809999999934e-01,3.930865122000000156e+00 -7.000424389999999608e-01,3.930292607999999799e+00 -7.013087980000000110e-01,3.929338419000000027e+00 -7.025751569999999502e-01,3.928575067000000143e+00 -7.038415160000000004e-01,3.927811714999999815e+00 -7.051078750000000506e-01,3.927048362999999931e+00 -7.063742339999999897e-01,3.926285011000000047e+00 -7.076405930000000399e-01,3.925521659000000163e+00 -7.089069519999999791e-01,3.924949145999999889e+00 -7.101733099999999466e-01,3.924185794000000005e+00 -7.114396689999999968e-01,3.923613280000000092e+00 -7.127060280000000470e-01,3.922849928000000208e+00 -7.139723869999999861e-01,3.922086575999999880e+00 -7.152387460000000363e-01,3.921323223999999996e+00 -7.165051049999999755e-01,3.920750710000000083e+00 -7.177714640000000257e-01,3.919987358999999838e+00 -7.190378229999999649e-01,3.919224006999999954e+00 -7.203041820000000151e-01,3.918651493000000041e+00 -7.215705399999999825e-01,3.918078979000000128e+00 -7.228368990000000327e-01,3.917506465000000215e+00 -7.241032579999999719e-01,3.916933950999999858e+00 -7.253696170000000221e-01,3.916361436999999945e+00 -7.266359759999999612e-01,3.915788923000000032e+00 -7.279023350000000114e-01,3.915025571999999787e+00 -7.291686939999999506e-01,3.914643895999999845e+00 -7.304350530000000008e-01,3.913880543999999961e+00 -7.317014109999999683e-01,3.913308030000000048e+00 -7.329677700000000184e-01,3.912735516000000136e+00 -7.342341289999999576e-01,3.912163001999999778e+00 -7.355004880000000078e-01,3.911781325999999837e+00 -7.367668469999999470e-01,3.911208811999999924e+00 -7.380332059999999972e-01,3.910636298000000011e+00 -7.392995650000000474e-01,3.910063785000000181e+00 -7.405659239999999865e-01,3.909491270999999823e+00 -7.418322830000000367e-01,3.908918756999999911e+00 -7.430986410000000042e-01,3.908537080999999969e+00 -7.443650000000000544e-01,3.908155405000000027e+00 -7.456313589999999936e-01,3.907582891000000114e+00 -7.468977180000000438e-01,3.907010377000000201e+00 -7.481640769999999829e-01,3.906628700999999815e+00 -7.494304360000000331e-01,3.906056186999999902e+00 -7.506967949999999723e-01,3.905865348999999931e+00 -7.519631540000000225e-01,3.905292836000000101e+00 -7.532295129999999617e-01,3.904911160000000159e+00 -7.544958710000000401e-01,3.904529484000000217e+00 -7.557622299999999793e-01,3.903956969999999860e+00 -7.570285890000000295e-01,3.903575293999999918e+00 -7.582949479999999687e-01,3.903193617999999976e+00 -7.595613070000000189e-01,3.902811942000000034e+00 -7.608276659999999580e-01,3.902621104000000063e+00 -7.620940250000000082e-01,3.902239428000000121e+00 -7.633603839999999474e-01,3.901857752000000179e+00 -7.646267420000000259e-01,3.901476075999999793e+00 -7.658931009999999651e-01,3.901094399999999851e+00 -7.671594600000000153e-01,3.900903561999999880e+00 -7.684258189999999544e-01,3.900521887000000021e+00 -7.696921780000000046e-01,3.900140211000000079e+00 -7.709585370000000548e-01,3.899949373000000108e+00 -7.722248959999999940e-01,3.899758535000000137e+00 -7.734912550000000442e-01,3.899376859000000195e+00 -7.747576130000000116e-01,3.899186020999999780e+00 -7.760239719999999508e-01,3.898995182999999809e+00 -7.772903310000000010e-01,3.898613506999999867e+00 -7.785566900000000512e-01,3.898422668999999896e+00 -7.798230489999999904e-01,3.898040992999999954e+00 -7.810894080000000406e-01,3.897850154999999983e+00 -7.823557669999999797e-01,3.897659317000000012e+00 -7.836221260000000299e-01,3.897468479000000041e+00 -7.848884849999999691e-01,3.897277641000000070e+00 -7.861548430000000476e-01,3.897086803000000099e+00 -7.874212019999999868e-01,3.896705127000000157e+00 -7.886875610000000369e-01,3.896705127000000157e+00 -7.899539199999999761e-01,3.896514289000000186e+00 -7.912202790000000263e-01,3.896323451000000215e+00 -7.924866379999999655e-01,3.896323451000000215e+00 -7.937529970000000157e-01,3.896132612999999800e+00 -7.950193559999999549e-01,3.895750937999999941e+00 -7.962857150000000050e-01,3.895750937999999941e+00 -7.975520729999999725e-01,3.895560099999999970e+00 -7.988184320000000227e-01,3.895369261999999999e+00 -8.000847909999999619e-01,3.895178424000000028e+00 -8.013511500000000121e-01,3.894987586000000057e+00 -8.026175089999999512e-01,3.894796748000000086e+00 -8.038838680000000014e-01,3.894605910000000115e+00 -8.051502270000000516e-01,3.894605910000000115e+00 -8.064165859999999908e-01,3.894415072000000144e+00 -8.076829439999999583e-01,3.894224234000000173e+00 -8.089493030000000084e-01,3.894033396000000202e+00 -8.102156619999999476e-01,3.894033396000000202e+00 -8.114820209999999978e-01,3.893842557999999787e+00 -8.127483800000000480e-01,3.893651719999999816e+00 -8.140147389999999872e-01,3.893651719999999816e+00 -8.152810980000000374e-01,3.893460881999999845e+00 -8.165474569999999765e-01,3.893270043999999874e+00 -8.178138160000000267e-01,3.893270043999999874e+00 -8.190801739999999942e-01,3.893079205999999903e+00 -8.203465330000000444e-01,3.892888367999999932e+00 -8.216128919999999836e-01,3.892697529999999961e+00 -8.228792510000000338e-01,3.892697529999999961e+00 -8.241456099999999729e-01,3.892506691999999990e+00 -8.254119690000000231e-01,3.892315854000000019e+00 -8.266783279999999623e-01,3.892125016000000048e+00 -8.279446870000000125e-01,3.891934178000000077e+00 -8.292110449999999799e-01,3.891934178000000077e+00 -8.304774040000000301e-01,3.891743340000000106e+00 -8.317437629999999693e-01,3.891552502000000135e+00 -8.330101220000000195e-01,3.891361664000000165e+00 -8.342764809999999587e-01,3.891170826000000194e+00 -8.355428400000000089e-01,3.890979988999999861e+00 -8.368091989999999480e-01,3.890979988999999861e+00 -8.380755579999999982e-01,3.890789150999999890e+00 -8.393419170000000484e-01,3.890598312999999919e+00 -8.406082750000000159e-01,3.890407474999999948e+00 -8.418746339999999551e-01,3.890216636999999977e+00 -8.431409930000000053e-01,3.890025799000000006e+00 -8.444073520000000554e-01,3.889834961000000035e+00 -8.456737109999999946e-01,3.889834961000000035e+00 -8.469400700000000448e-01,3.889644123000000064e+00 -8.482064289999999840e-01,3.889262447000000122e+00 -8.494727880000000342e-01,3.889071609000000151e+00 -8.507391460000000016e-01,3.888880771000000180e+00 -8.520055050000000518e-01,3.888689933000000210e+00 -8.532718639999999910e-01,3.888499094999999794e+00 -8.545382230000000412e-01,3.888308256999999823e+00 -8.558045819999999804e-01,3.888117418999999853e+00 -8.570709410000000306e-01,3.887735742999999911e+00 -8.583372999999999697e-01,3.887544904999999940e+00 -8.596036590000000199e-01,3.887354066999999969e+00 -8.608700179999999591e-01,3.887163228999999998e+00 -8.621363760000000376e-01,3.886972391000000027e+00 -8.634027349999999768e-01,3.886590715000000085e+00 -8.646690940000000269e-01,3.886209039999999781e+00 -8.659354529999999661e-01,3.886018201999999810e+00 -8.672018120000000163e-01,3.885827363999999839e+00 -8.684681709999999555e-01,3.885445687999999897e+00 -8.697345300000000057e-01,3.885064011999999956e+00 -8.710008889999999449e-01,3.884873173999999985e+00 -8.722672470000000233e-01,3.884491498000000043e+00 -8.735336059999999625e-01,3.884300660000000072e+00 -8.747999650000000127e-01,3.883918984000000130e+00 -8.760663239999999519e-01,3.883728146000000159e+00 -8.773326830000000021e-01,3.883346470000000217e+00 -8.785990420000000523e-01,3.882773955999999860e+00 -8.798654009999999914e-01,3.882583117999999889e+00 -8.811317600000000416e-01,3.882201441999999947e+00 -8.823981189999999808e-01,3.881819766000000005e+00 -8.836644769999999482e-01,3.881438090000000063e+00 -8.849308359999999984e-01,3.881056415000000204e+00 -8.861971950000000486e-01,3.880674738999999818e+00 -8.874635539999999878e-01,3.880102224999999905e+00 -8.887299130000000380e-01,3.879529710999999992e+00 -8.899962719999999772e-01,3.879148035000000050e+00 -8.912626310000000274e-01,3.878575521000000137e+00 -8.925289899999999665e-01,3.878193845000000195e+00 -8.937953490000000167e-01,3.877812168999999809e+00 -8.950617069999999842e-01,3.877239654999999896e+00 -8.963280660000000344e-01,3.876667140999999983e+00 -8.975944249999999736e-01,3.876094628000000153e+00 -8.988607840000000238e-01,3.875522113999999796e+00 -9.001271429999999629e-01,3.874949599999999883e+00 -9.013935020000000131e-01,3.874377085999999970e+00 -9.026598609999999523e-01,3.873613734000000086e+00 -9.039262200000000025e-01,3.873041220000000173e+00 -9.051925790000000527e-01,3.872468705999999816e+00 -9.064589370000000201e-01,3.871705353999999932e+00 -9.077252959999999593e-01,3.871132841000000102e+00 -9.089916550000000095e-01,3.870369489000000218e+00 -9.102580139999999487e-01,3.869415298999999919e+00 -9.115243729999999989e-01,3.868842785000000006e+00 -9.127907320000000491e-01,3.868079433000000122e+00 -9.140570909999999882e-01,3.867125242999999823e+00 -9.153234489999999557e-01,3.866171054000000051e+00 -9.165898080000000059e-01,3.865407702000000167e+00 -9.178561669999999451e-01,3.864453511999999868e+00 -9.191225259999999952e-01,3.863499322000000014e+00 -9.203888850000000454e-01,3.862545132000000159e+00 -9.216552439999999846e-01,3.861400104999999972e+00 -9.229216030000000348e-01,3.860255077000000146e+00 -9.241879619999999740e-01,3.859300886999999847e+00 -9.254543200000000525e-01,3.858155859000000021e+00 -9.267206789999999916e-01,3.856819993999999863e+00 -9.279870380000000418e-01,3.855674966000000037e+00 -9.292533969999999810e-01,3.854148261999999825e+00 -9.305197560000000312e-01,3.853003233999999999e+00 -9.317861149999999704e-01,3.851476530999999870e+00 -9.330524740000000206e-01,3.849949827000000102e+00 -9.343188329999999597e-01,3.848423122999999890e+00 -9.355851920000000099e-01,3.846896420000000205e+00 -9.368515499999999774e-01,3.844988040000000051e+00 -9.381179090000000276e-01,3.843270497999999868e+00 -9.393842679999999667e-01,3.841362118999999797e+00 -9.406506270000000169e-01,3.839262901000000117e+00 -9.419169859999999561e-01,3.837163684000000075e+00 -9.431833450000000063e-01,3.835064465999999950e+00 -9.444497039999999455e-01,3.832583572999999966e+00 -9.457160629999999957e-01,3.830102678999999899e+00 -9.469824209999999631e-01,3.827430947999999944e+00 -9.482487800000000133e-01,3.824759215999999906e+00 -9.495151389999999525e-01,3.821896646999999980e+00 -9.507814980000000027e-01,3.818843239000000001e+00 -9.520478570000000529e-01,3.815598994000000133e+00 -9.533142159999999921e-01,3.812163910999999850e+00 -9.545805750000000423e-01,3.808537988999999957e+00 -9.558469339999999814e-01,3.804912068000000147e+00 -9.571132930000000316e-01,3.800904470999999951e+00 -9.583796509999999991e-01,3.796896874000000199e+00 -9.596460100000000493e-01,3.792698439000000032e+00 -9.609123689999999884e-01,3.788309165999999895e+00 -9.621787280000000386e-01,3.783919893000000201e+00 -9.634450869999999778e-01,3.779148944000000121e+00 -9.647114460000000280e-01,3.774568831999999929e+00 -9.659778049999999672e-01,3.769607044999999879e+00 -9.672441640000000174e-01,3.765026934000000214e+00 -9.685105229999999565e-01,3.760065147000000163e+00 -9.697768810000000350e-01,3.755103360000000112e+00 -9.710432399999999742e-01,3.750141573000000061e+00 -9.723095990000000244e-01,3.745179786000000011e+00 -9.735759579999999636e-01,3.740217998999999960e+00 -9.748423170000000137e-01,3.735065375000000021e+00 -9.761086759999999529e-01,3.729912749999999999e+00 -9.773750350000000031e-01,3.724760124999999977e+00 -9.786413940000000533e-01,3.719416661999999985e+00 -9.799077520000000208e-01,3.713882361000000021e+00 -9.811741109999999599e-01,3.708157222000000086e+00 -9.824404700000000101e-01,3.702241245000000180e+00 -9.837068289999999493e-01,3.696134430999999942e+00 -9.849731879999999995e-01,3.689455102000000153e+00 -9.862395470000000497e-01,3.682394096999999977e+00 -9.875059059999999889e-01,3.674760578999999971e+00 -9.887722650000000391e-01,3.666363709000000082e+00 -9.900386230000000065e-01,3.656630972999999951e+00 -9.913049819999999457e-01,3.645562371000000024e+00 -9.925713409999999959e-01,3.632203714000000083e+00 -9.938377000000000461e-01,3.615219134999999806e+00 -9.951040589999999852e-01,3.591936904000000208e+00 -9.963704180000000354e-01,3.557204394999999852e+00 -9.976367769999999746e-01,3.501098035000000053e+00 -9.989031360000000248e-01,3.408923300000000101e+00 +# OCP for lico2 from Rieger 2016 +# stoichiometry , OCP [V] +0.43,4.3 +0.436639784,4.279907753 +0.437906143,4.276472669 +0.439172502,4.273800938 +0.44043886,4.271129206 +0.441705219,4.268648313 +0.442971578,4.266167419 +0.444237937,4.263686526 +0.445504296,4.261205633 +0.446770655,4.258724739 +0.448037014,4.256243846 +0.449303373,4.253762952 +0.450569732,4.251282059 +0.45183609,4.248992003 +0.453102449,4.24651111 +0.454368808,4.244221054 +0.455635167,4.24174016 +0.456901526,4.239259267 +0.458167885,4.236969211 +0.459434244,4.234679156 +0.460700603,4.232198262 +0.461966961,4.229717369 +0.46323332,4.227236475 +0.464499679,4.225137258 +0.465766038,4.222656364 +0.467032397,4.220366309 +0.468298756,4.217885415 +0.469565115,4.21559536 +0.470831474,4.213305304 +0.472097833,4.211015249 +0.473364191,4.208534355 +0.47463055,4.2062443 +0.475896909,4.203954244 +0.477163268,4.201664189 +0.478429627,4.199374133 +0.479695986,4.197084078 +0.480962345,4.194794022 +0.482228704,4.192503967 +0.483495063,4.190213911 +0.484761421,4.187923856 +0.48602778,4.185824638 +0.487294139,4.183534582 +0.488560498,4.181053689 +0.489826857,4.178954471 +0.491093216,4.176855254 +0.492359575,4.174565198 +0.493625934,4.172275143 +0.494892292,4.169985087 +0.496158651,4.16788587 +0.49742501,4.165786652 +0.498691369,4.163687435 +0.499957728,4.161588217 +0.501224087,4.159298161 +0.502490446,4.157389782 +0.503756805,4.155290564 +0.505023163,4.153191347 +0.506289522,4.151092129 +0.507555881,4.148992912 +0.50882224,4.146893694 +0.510088599,4.144794476 +0.511354958,4.142504421 +0.512621317,4.140405203 +0.513887676,4.138305986 +0.515154035,4.136206768 +0.516420393,4.134107551 +0.517686752,4.131817495 +0.518953111,4.129718278 +0.52021947,4.12761906 +0.521485829,4.125519842 +0.522752188,4.123229787 +0.524018547,4.121130569 +0.525284906,4.11922219 +0.526551264,4.116932134 +0.527817622,4.115023755 +0.52908398,4.112733699 +0.530350338,4.110634481 +0.531616697,4.108726102 +0.532883056,4.106817722 +0.534149415,4.104718505 +0.535415774,4.102619287 +0.536682133,4.100901745 +0.537948492,4.09861169 +0.539214851,4.09670331 +0.54048121,4.094985769 +0.541747568,4.092886551 +0.543013927,4.090978171 +0.544280286,4.089069792 +0.545546645,4.08735225 +0.546813004,4.085443871 +0.548079363,4.083535491 +0.549345722,4.081817949 +0.550612081,4.07990957 +0.551878439,4.078192028 +0.553144798,4.076474486 +0.554411157,4.074566107 +0.555677516,4.072848565 +0.556943875,4.071131024 +0.558210234,4.069413482 +0.559476593,4.06769594 +0.560742952,4.065978399 +0.562009311,4.064451695 +0.563275669,4.062734153 +0.564542028,4.06120745 +0.565808387,4.05929907 +0.567074746,4.057772366 +0.568341105,4.056054825 +0.569607464,4.054528121 +0.570873823,4.052810579 +0.572140182,4.051283876 +0.573406541,4.049566334 +0.574672899,4.04803963 +0.575939258,4.046322089 +0.577205617,4.044795385 +0.578471976,4.043268681 +0.579738335,4.04155114 +0.581004694,4.040024436 +0.582271053,4.038306894 +0.583537412,4.036971029 +0.58480377,4.035253487 +0.586070129,4.033726783 +0.587336488,4.03220008 +0.588602847,4.030673376 +0.589869206,4.029146672 +0.591135565,4.027619968 +0.592401924,4.026093265 +0.593668283,4.024566561 +0.594934642,4.023039857 +0.596201,4.021703992 +0.597467359,4.020177288 +0.598733718,4.018841422 +0.600000077,4.017314719 +0.601266436,4.015788015 +0.602532795,4.014261311 +0.603799154,4.012925445 +0.605065513,4.01158958 +0.606331872,4.010253714 +0.60759823,4.00872701 +0.608864589,4.007391145 +0.610130948,4.006055279 +0.611397307,4.004719413 +0.612663666,4.003383547 +0.613930025,4.001856844 +0.615196384,4.000711816 +0.616462743,3.99937595 +0.617729101,3.997849247 +0.61899546,3.996704219 +0.620261819,3.995368353 +0.621528178,3.994032487 +0.622794537,3.99288746 +0.624060896,3.991551594 +0.625327255,3.990215728 +0.626593614,3.9890707 +0.627859973,3.987734835 +0.629126331,3.986398969 +0.63039269,3.985253941 +0.631659049,3.984108913 +0.632925408,3.982773048 +0.634191767,3.98162802 +0.635458126,3.980292154 +0.636724485,3.979147126 +0.637990844,3.978192937 +0.639257202,3.976857071 +0.640523561,3.975712043 +0.64178992,3.974567015 +0.643056279,3.973421988 +0.644322638,3.97227696 +0.645588997,3.970941094 +0.646855356,3.969986904 +0.648121715,3.968841877 +0.649388074,3.967696849 +0.650654432,3.966742659 +0.651920791,3.965597631 +0.65318715,3.964452603 +0.654453509,3.963498414 +0.655719868,3.962353386 +0.656986227,3.961208358 +0.658252586,3.960254168 +0.659518945,3.959109141 +0.660785304,3.958154951 +0.662051662,3.957200761 +0.663318021,3.956055733 +0.66458438,3.955101543 +0.665850739,3.954147354 +0.667117098,3.953002326 +0.668383457,3.952048136 +0.669649816,3.951284784 +0.670916175,3.950139756 +0.672182533,3.949185567 +0.673448892,3.948231377 +0.674715251,3.947277187 +0.67598161,3.946513835 +0.677247969,3.945368807 +0.678514328,3.944605456 +0.679780687,3.943651266 +0.681047046,3.942697076 +0.682313405,3.941933724 +0.683579763,3.940979534 +0.684846122,3.940025344 +0.686112481,3.939261993 +0.68737884,3.938307803 +0.688645199,3.937544451 +0.689911568,3.936590261 +0.691177927,3.935826909 +0.692444286,3.93487272 +0.693710645,3.934109368 +0.694977004,3.933346016 +0.696243363,3.932582664 +0.697509722,3.931819312 +0.698776081,3.930865122 +0.700042439,3.930292608 +0.701308798,3.929338419 +0.702575157,3.928575067 +0.703841516,3.927811715 +0.705107875,3.927048363 +0.706374234,3.926285011 +0.707640593,3.925521659 +0.708906952,3.924949146 +0.71017331,3.924185794 +0.711439669,3.92361328 +0.712706028,3.922849928 +0.713972387,3.922086576 +0.715238746,3.921323224 +0.716505105,3.92075071 +0.717771464,3.919987359 +0.719037823,3.919224007 +0.720304182,3.918651493 +0.72157054,3.918078979 +0.722836899,3.917506465 +0.724103258,3.916933951 +0.725369617,3.916361437 +0.726635976,3.915788923 +0.727902335,3.915025572 +0.729168694,3.914643896 +0.730435053,3.913880544 +0.731701411,3.91330803 +0.73296777,3.912735516 +0.734234129,3.912163002 +0.735500488,3.911781326 +0.736766847,3.911208812 +0.738033206,3.910636298 +0.739299565,3.910063785 +0.740565924,3.909491271 +0.741832283,3.908918757 +0.743098641,3.908537081 +0.744365,3.908155405 +0.745631359,3.907582891 +0.746897718,3.907010377 +0.748164077,3.906628701 +0.749430436,3.906056187 +0.750696795,3.905865349 +0.751963154,3.905292836 +0.753229513,3.90491116 +0.754495871,3.904529484 +0.75576223,3.90395697 +0.757028589,3.903575294 +0.758294948,3.903193618 +0.759561307,3.902811942 +0.760827666,3.902621104 +0.762094025,3.902239428 +0.763360384,3.901857752 +0.764626742,3.901476076 +0.765893101,3.9010944 +0.76715946,3.900903562 +0.768425819,3.900521887 +0.769692178,3.900140211 +0.770958537,3.899949373 +0.772224896,3.899758535 +0.773491255,3.899376859 +0.774757613,3.899186021 +0.776023972,3.898995183 +0.777290331,3.898613507 +0.77855669,3.898422669 +0.779823049,3.898040993 +0.781089408,3.897850155 +0.782355767,3.897659317 +0.783622126,3.897468479 +0.784888485,3.897277641 +0.786154843,3.897086803 +0.787421202,3.896705127 +0.788687561,3.896705127 +0.78995392,3.896514289 +0.791220279,3.896323451 +0.792486638,3.896323451 +0.793752997,3.896132613 +0.795019356,3.895750938 +0.796285715,3.895750938 +0.797552073,3.8955601 +0.798818432,3.895369262 +0.800084791,3.895178424 +0.80135115,3.894987586 +0.802617509,3.894796748 +0.803883868,3.89460591 +0.805150227,3.89460591 +0.806416586,3.894415072 +0.807682944,3.894224234 +0.808949303,3.894033396 +0.810215662,3.894033396 +0.811482021,3.893842558 +0.81274838,3.89365172 +0.814014739,3.89365172 +0.815281098,3.893460882 +0.816547457,3.893270044 +0.817813816,3.893270044 +0.819080174,3.893079206 +0.820346533,3.892888368 +0.821612892,3.89269753 +0.822879251,3.89269753 +0.82414561,3.892506692 +0.825411969,3.892315854 +0.826678328,3.892125016 +0.827944687,3.891934178 +0.829211045,3.891934178 +0.830477404,3.89174334 +0.831743763,3.891552502 +0.833010122,3.891361664 +0.834276481,3.891170826 +0.83554284,3.890979989 +0.836809199,3.890979989 +0.838075558,3.890789151 +0.839341917,3.890598313 +0.840608275,3.890407475 +0.841874634,3.890216637 +0.843140993,3.890025799 +0.844407352,3.889834961 +0.845673711,3.889834961 +0.84694007,3.889644123 +0.848206429,3.889262447 +0.849472788,3.889071609 +0.850739146,3.888880771 +0.852005505,3.888689933 +0.853271864,3.888499095 +0.854538223,3.888308257 +0.855804582,3.888117419 +0.857070941,3.887735743 +0.8583373,3.887544905 +0.859603659,3.887354067 +0.860870018,3.887163229 +0.862136376,3.886972391 +0.863402735,3.886590715 +0.864669094,3.88620904 +0.865935453,3.886018202 +0.867201812,3.885827364 +0.868468171,3.885445688 +0.86973453,3.885064012 +0.871000889,3.884873174 +0.872267247,3.884491498 +0.873533606,3.88430066 +0.874799965,3.883918984 +0.876066324,3.883728146 +0.877332683,3.88334647 +0.878599042,3.882773956 +0.879865401,3.882583118 +0.88113176,3.882201442 +0.882398119,3.881819766 +0.883664477,3.88143809 +0.884930836,3.881056415 +0.886197195,3.880674739 +0.887463554,3.880102225 +0.888729913,3.879529711 +0.889996272,3.879148035 +0.891262631,3.878575521 +0.89252899,3.878193845 +0.893795349,3.877812169 +0.895061707,3.877239655 +0.896328066,3.876667141 +0.897594425,3.876094628 +0.898860784,3.875522114 +0.900127143,3.8749496 +0.901393502,3.874377086 +0.902659861,3.873613734 +0.90392622,3.87304122 +0.905192579,3.872468706 +0.906458937,3.871705354 +0.907725296,3.871132841 +0.908991655,3.870369489 +0.910258014,3.869415299 +0.911524373,3.868842785 +0.912790732,3.868079433 +0.914057091,3.867125243 +0.915323449,3.866171054 +0.916589808,3.865407702 +0.917856167,3.864453512 +0.919122526,3.863499322 +0.920388885,3.862545132 +0.921655244,3.861400105 +0.922921603,3.860255077 +0.924187962,3.859300887 +0.92545432,3.858155859 +0.926720679,3.856819994 +0.927987038,3.855674966 +0.929253397,3.854148262 +0.930519756,3.853003234 +0.931786115,3.851476531 +0.933052474,3.849949827 +0.934318833,3.848423123 +0.935585192,3.84689642 +0.93685155,3.84498804 +0.938117909,3.843270498 +0.939384268,3.841362119 +0.940650627,3.839262901 +0.941916986,3.837163684 +0.943183345,3.835064466 +0.944449704,3.832583573 +0.945716063,3.830102679 +0.946982421,3.827430948 +0.94824878,3.824759216 +0.949515139,3.821896647 +0.950781498,3.818843239 +0.952047857,3.815598994 +0.953314216,3.812163911 +0.954580575,3.808537989 +0.955846934,3.804912068 +0.957113293,3.800904471 +0.958379651,3.796896874 +0.95964601,3.792698439 +0.960912369,3.788309166 +0.962178728,3.783919893 +0.963445087,3.779148944 +0.964711446,3.774568832 +0.965977805,3.769607045 +0.967244164,3.765026934 +0.968510523,3.760065147 +0.969776881,3.75510336 +0.97104324,3.750141573 +0.972309599,3.745179786 +0.973575958,3.740217999 +0.974842317,3.735065375 +0.976108676,3.72991275 +0.977375035,3.724760125 +0.978641394,3.719416662 +0.979907752,3.713882361 +0.981174111,3.708157222 +0.98244047,3.702241245 +0.983706829,3.696134431 +0.984973188,3.689455102 +0.986239547,3.682394097 +0.987505906,3.674760579 +0.988772265,3.666363709 +0.990038623,3.656630973 +0.991304982,3.645562371 +0.992571341,3.632203714 +0.9938377,3.615219135 +0.995104059,3.591936904 +0.996370418,3.557204395 +0.997636777,3.501098035 +0.998903136,3.4089233 diff --git a/pybamm/input/parameters/lithium_ion/measured_graphite_diffusivity_Ecker2015.csv b/pybamm/input/parameters/lithium_ion/measured_graphite_diffusivity_Ecker2015.csv index f76d1cecc7..936c491f96 100644 --- a/pybamm/input/parameters/lithium_ion/measured_graphite_diffusivity_Ecker2015.csv +++ b/pybamm/input/parameters/lithium_ion/measured_graphite_diffusivity_Ecker2015.csv @@ -1,23 +1,23 @@ -4.291659469592760262e-02,2.531898360570985438e-13 -8.025337997334400231e-02,4.438292394020732198e-14 -1.201495693104105977e-01,3.194742634305544604e-14 -1.579612071829530062e-01,2.607796299467475510e-14 -1.957522738239375892e-01,2.255908580891848065e-14 -2.357650334731652975e-01,1.168650222421729978e-14 -2.714441203408818892e-01,1.238692732813089111e-14 -3.100288936661386163e-01,2.029195448741254678e-14 -3.484165260222996108e-01,3.260471640647865042e-15 -3.866704453733347258e-01,7.640156635519089703e-16 -4.264157790123110914e-01,8.417747371928056363e-16 -4.641862744217375991e-01,7.717093525037831689e-16 -5.018779134435262801e-01,8.837921553351042829e-16 -5.412118224513462472e-01,3.109171322297572131e-15 -5.766749113877058797e-01,6.062184667385398012e-15 -6.148036890800978593e-01,3.595937210129949532e-14 -6.545815938357071317e-01,2.032309380667846681e-15 -7.681399348426813933e-01,7.802664217099549249e-16 -8.089429726375878538e-01,7.728942922045022093e-16 -8.823034129113143109e-01,9.658296743214139775e-16 -9.220864604748132409e-01,9.566999594213239365e-16 -9.607500901877076283e-01,1.254577638361363333e-15 -9.976360226401491671e-01,1.395684713792463091e-14 +0.04291659469592768,2.5318983605709854e-13 +0.08025337997334403,4.438292394020732e-14 +0.12014956931041065,3.1947426343055446e-14 +0.15796120718295306,2.6077962994674755e-14 +0.19575227382393767,2.255908580891848e-14 +0.2357650334731653,1.16865022242173e-14 +0.27144412034088194,1.2386927328130891e-14 +0.3100288936661386,2.0291954487412547e-14 +0.3484165260222996,3.2604716406478646e-15 +0.3866704453733347,7.640156635519089e-16 +0.4264157790123111,8.417747371928056e-16 +0.4641862744217376,7.717093525037831e-16 +0.5018779134435263,8.837921553351043e-16 +0.5412118224513462,3.109171322297572e-15 +0.5766749113877059,6.062184667385398e-15 +0.6148036890800979,3.595937210129949e-14 +0.6545815938357071,2.0323093806678467e-15 +0.7681399348426814,7.802664217099549e-16 +0.8089429726375879,7.728942922045022e-16 +0.8823034129113143,9.65829674321414e-16 +0.9220864604748132,9.566999594213241e-16 +0.9607500901877076,1.2545776383613633e-15 +0.9976360226401492,1.395684713792463e-14 diff --git a/pybamm/input/parameters/lithium_ion/measured_nco_diffusivity_Ecker2015.csv b/pybamm/input/parameters/lithium_ion/measured_nco_diffusivity_Ecker2015.csv index 0e12cce8ee..72c9f0796c 100644 --- a/pybamm/input/parameters/lithium_ion/measured_nco_diffusivity_Ecker2015.csv +++ b/pybamm/input/parameters/lithium_ion/measured_nco_diffusivity_Ecker2015.csv @@ -1,15 +1,15 @@ -1.394321766561512910e-01,1.825654028815251074e-13 -2.000000000000000111e-01,3.329858559514641948e-13 -2.618296529968452968e-01,3.080122853252537414e-13 -3.223974763406939892e-01,2.633392029382157728e-13 -3.867507886435330167e-01,1.981196994552170981e-13 -4.460567823343847826e-01,1.418878868334243052e-13 -5.078864353312302349e-01,7.201182417750914051e-14 -5.684542586750789273e-01,2.857708698828691482e-14 -6.315457413249212504e-01,4.541608403537004149e-15 -6.933753943217664251e-01,5.479444754774098165e-14 -7.526813880126184131e-01,2.029688665697241882e-13 -8.157728706624605142e-01,1.588286508400881632e-13 -8.750788643533122801e-01,1.344609203929170519e-13 -9.406940063091483450e-01,2.054505327203948374e-14 -1.000000000000000000e+00,5.446292980729586538e-15 +0.13943217665615135,1.8256540288152508e-13 +0.2,3.329858559514642e-13 +0.2618296529968453,3.0801228532525374e-13 +0.32239747634069404,2.6333920293821577e-13 +0.38675078864353307,1.9811969945521707e-13 +0.4460567823343848,1.418878868334243e-13 +0.5078864353312302,7.201182417750914e-14 +0.5684542586750789,2.857708698828691e-14 +0.6315457413249213,4.541608403537004e-15 +0.6933753943217664,5.479444754774098e-14 +0.7526813880126184,2.0296886656972416e-13 +0.8157728706624605,1.5882865084008814e-13 +0.8750788643533123,1.3446092039291705e-13 +0.9406940063091483,2.0545053272039484e-14 +1.0,5.4462929807295865e-15 diff --git a/pybamm/input/parameters/lithium_ion/nca_ocp_Kim2011_data.csv b/pybamm/input/parameters/lithium_ion/nca_ocp_Kim2011_data.csv index dd373a4e59..dd00060753 100644 --- a/pybamm/input/parameters/lithium_ion/nca_ocp_Kim2011_data.csv +++ b/pybamm/input/parameters/lithium_ion/nca_ocp_Kim2011_data.csv @@ -1,75 +1,75 @@ -3.702144282741329784e-01,4.210440859985936868e+00 -3.757743637822902882e-01,4.198214873372019262e+00 -3.836904770360268779e-01,4.182142025684673747e+00 -3.918959828337426066e-01,4.165163132847251148e+00 -4.010692214022635871e-01,4.149604765177982379e+00 -4.068618073657386813e-01,4.138286599370601948e+00 -4.116896199858421923e-01,4.129799619141419242e+00 -4.194137255876831949e-01,4.115653556008544989e+00 -4.266554445178383226e-01,4.102923085664770042e+00 -4.329304171529991807e-01,4.090189327068291192e+00 -4.396907358872798044e-01,4.080291686429065479e+00 -4.454843083265662140e-01,4.070390757537135862e+00 -4.532103868800296809e-01,4.059079168235163237e+00 -4.585215726476301046e-01,4.050593832132332039e+00 -4.628660121202364808e-01,4.042105207776796938e+00 -4.710764502970081757e-01,4.032212499516626636e+00 -4.763876360646087105e-01,4.023727163413795438e+00 -4.836313279463863024e-01,4.013831166900922121e+00 -4.894249003856726010e-01,4.003930238008992504e+00 -4.981187117099414863e-01,3.994039173875174153e+00 -5.077763099017708059e-01,3.979899687247709039e+00 -5.164711077018507845e-01,3.971425860029341948e+00 -5.280592390562347527e-01,3.953041239160932641e+00 -5.377168372480639613e-01,3.938901752533467082e+00 -5.493089145056928579e-01,3.926186079326860590e+00 -5.565516199116592455e-01,3.914872845898536013e+00 -5.671749779226714638e-01,3.899319410608324876e+00 -5.768345490661231922e-01,3.888014397811760059e+00 -5.869745339296382758e-01,3.872459318395196082e+00 -5.961487589739705717e-01,3.858318187641378572e+00 -6.087065960507822560e-01,3.844188565772025168e+00 -6.159493014567486435e-01,3.832875332343701036e+00 -6.246431127810174733e-01,3.822984268209883130e+00 -6.352684437436521003e-01,3.810265306750571845e+00 -6.463781343295951221e-01,3.798965226333064216e+00 -6.603860908488979886e-01,3.784840536842767111e+00 -6.763275399581892833e-01,3.770722423857878258e+00 -6.917856159199835542e-01,3.756602666746637009e+00 -7.038630392767318833e-01,3.746723111497284098e+00 -7.246372333851824887e-01,3.731204202860463948e+00 -7.391305360036051209e-01,3.719915631327419980e+00 -7.531414519503416560e-01,3.710042652583474876e+00 -7.676347545687642882e-01,3.698754081050430909e+00 -7.797121779255123952e-01,3.688874525801077553e+00 -7.917886148064495755e-01,3.677577733636273827e+00 -8.043484248348837795e-01,3.666282585597821608e+00 -8.144923556016439026e-01,3.656396453843060002e+00 -8.260854193350838370e-01,3.645098017551903880e+00 -8.357449904785355654e-01,3.633793004755339950e+00 -8.463732808686038611e-01,3.625325754042380666e+00 -8.560318655362443296e-01,3.612603504330365922e+00 -8.652100364838214430e-01,3.604131321238350782e+00 -8.739028613322789019e-01,3.592823020189082506e+00 -8.840477785748505068e-01,3.584354125349772158e+00 -8.927425763749304854e-01,3.575880298131404622e+00 -9.024031339941932517e-01,3.565992522250290619e+00 -9.125490377125760055e-01,3.558940864326430198e+00 -9.222105818076500316e-01,3.550470325360767454e+00 -9.338056184927123748e-01,3.542006362900512517e+00 -9.482959616837012273e-01,3.526466080621116994e+00 -9.579515869239080272e-01,3.509492120162750251e+00 -9.651923193782520061e-01,3.495344412903524933e+00 -9.709740541078040188e-01,3.468436641026187761e+00 -9.743448419547372508e-01,3.450024070009793942e+00 -9.767449376034319508e-01,3.425939263078893848e+00 -9.805892338397508290e-01,3.393355967034346055e+00 -9.820196237660175909e-01,3.365016161104390058e+00 -9.834510001680956126e-01,3.338093592089884432e+00 -9.848843495217960431e-01,3.314005496906280435e+00 -9.858323527763771521e-01,3.287081283765422857e+00 -9.872587967993989855e-01,3.253072530173664489e+00 -9.896421223593031558e-01,3.204894695680104100e+00 -9.905703960976598443e-01,3.149625744230234226e+00 -9.915055751666947970e-01,3.104277451188519166e+00 -9.933828386354436324e-01,3.023501523513242972e+00 +0.370214428274133, 4.210440859985937 +0.37577436378229034, 4.198214873372019 +0.3836904770360269, 4.182142025684674 +0.3918959828337426, 4.165163132847251 +0.40106922140226364, 4.149604765177982 +0.40686180736573874, 4.138286599370602 +0.4116896199858422, 4.129799619141419 +0.4194137255876832, 4.115653556008545 +0.4266554445178383, 4.10292308566477 +0.4329304171529992, 4.090189327068291 +0.4396907358872798, 4.0802916864290655 +0.44548430832656627, 4.070390757537136 +0.4532103868800297, 4.059079168235163 +0.45852157264763016, 4.050593832132332 +0.4628660121202365, 4.042105207776797 +0.4710764502970082, 4.032212499516627 +0.47638763606460877, 4.023727163413795 +0.4836313279463863, 4.013831166900922 +0.48942490038567266, 4.0039302380089925 +0.4981187117099415, 3.994039173875174 +0.5077763099017708, 3.979899687247709 +0.5164711077018508, 3.971425860029342 +0.5280592390562348, 3.9530412391609326 +0.537716837248064, 3.938901752533467 +0.5493089145056929, 3.9261860793268606 +0.5565516199116592, 3.914872845898536 +0.5671749779226715, 3.8993194106083244 +0.5768345490661232, 3.88801439781176 +0.5869745339296383, 3.872459318395196 +0.5961487589739706, 3.8583181876413786 +0.6087065960507823, 3.844188565772025 +0.6159493014567486, 3.832875332343701 +0.6246431127810175, 3.822984268209883 +0.6352684437436521, 3.8102653067505723 +0.6463781343295951, 3.798965226333064 +0.660386090848898, 3.784840536842767 +0.6763275399581893, 3.7707224238578783 +0.6917856159199836, 3.756602666746637 +0.7038630392767319, 3.7467231114972837 +0.7246372333851825, 3.7312042028604644 +0.7391305360036051, 3.71991563132742 +0.7531414519503417, 3.710042652583475 +0.7676347545687643, 3.698754081050431 +0.7797121779255124, 3.6888745258010776 +0.7917886148064496, 3.677577733636274 +0.8043484248348838, 3.6662825855978216 +0.8144923556016439, 3.65639645384306 +0.8260854193350838, 3.645098017551904 +0.8357449904785356, 3.6337930047553395 +0.8463732808686039, 3.6253257540423807 +0.8560318655362443, 3.612603504330366 +0.8652100364838214, 3.604131321238351 +0.8739028613322789, 3.5928230201890825 +0.8840477785748505, 3.5843541253497717 +0.8927425763749305, 3.5758802981314046 +0.9024031339941933, 3.5659925222502906 +0.9125490377125759, 3.5589408643264306 +0.9222105818076499, 3.5504703253607675 +0.9338056184927125, 3.5420063629005125 +0.9482959616837011, 3.526466080621117 +0.957951586923908, 3.5094921201627503 +0.965192319378252, 3.495344412903525 +0.9709740541078039, 3.4684366410261873 +0.9743448419547373, 3.450024070009794 +0.976744937603432, 3.425939263078894 +0.9805892338397507, 3.393355967034346 +0.9820196237660176, 3.36501616110439 +0.9834510001680955, 3.3380935920898844 +0.9848843495217959, 3.3140054969062804 +0.9858323527763772, 3.287081283765423 +0.987258796799399, 3.2530725301736645 +0.9896421223593032, 3.204894695680104 +0.9905703960976598, 3.1496257442302342 +0.9915055751666949, 3.104277451188519 +0.9933828386354436, 3.023501523513243 \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/nco_ocp_Ecker2015.csv b/pybamm/input/parameters/lithium_ion/nco_ocp_Ecker2015.csv index 1acc74d2d5..eb8776016f 100644 --- a/pybamm/input/parameters/lithium_ion/nco_ocp_Ecker2015.csv +++ b/pybamm/input/parameters/lithium_ion/nco_ocp_Ecker2015.csv @@ -1,43 +1,43 @@ -1.066078485433399892e-03,4.584263211444842945e+00 -4.127377998345759663e-02,4.542437342855613736e+00 -6.539840088227200088e-02,4.529650072116670145e+00 -8.722543883834220357e-02,4.523324753404194709e+00 -1.115415249823853011e-01,4.498932358000800491e+00 -1.354746806359710953e-01,4.469858708793820412e+00 -1.594078362895569867e-01,4.429538485743097276e+00 -1.817454482329037002e-01,4.389207099839923742e+00 -2.056786038864892863e-01,4.342138932482952463e+00 -2.280162158298359998e-01,4.299558231811030140e+00 -2.511515996283024132e-01,4.254733797796583339e+00 -2.750847552818880271e-01,4.216662889514608992e+00 -2.982201390803542740e-01,4.178586399806407670e+00 -3.221532947339402764e-01,4.147263435830680578e+00 -3.452886785324063013e-01,4.111436260891228045e+00 -3.692218341859923036e-01,4.082362611684248854e+00 -3.939527616946973954e-01,4.055543858672243651e+00 -4.146948299278049865e-01,4.030946513297861244e+00 -4.402235292916298892e-01,4.006382656480829141e+00 -4.617633693798570138e-01,3.984040207301420722e+00 -4.864942968885623831e-01,3.968468028133159908e+00 -5.088319088319090966e-01,3.952879104686223055e+00 -5.327650644854948769e-01,3.941799973629234177e+00 -5.566982201390806573e-01,3.923972898265998932e+00 -5.782380602273078374e-01,3.919624967236580826e+00 -5.981823566052959507e-01,3.913016558585963978e+00 -6.484419834778261116e-01,3.911118873669401808e+00 -6.723751391314118919e-01,3.911286316456156875e+00 -6.971060666401172057e-01,3.897963452056644851e+00 -7.194436785834639192e-01,3.882374528609707998e+00 -7.433768342370494775e-01,3.860048823708975174e+00 -7.649166743252768796e-01,3.817462541610827209e+00 -7.880520581237431266e-01,3.788383310977622376e+00 -8.127829856324482183e-01,3.759315243196867939e+00 -8.351205975757949318e-01,3.732479745906187141e+00 -8.590537532293809342e-01,3.707904726236704640e+00 -8.821891370278471811e-01,3.681074810372248596e+00 -9.053245208263132060e-01,3.649746264970294973e+00 -9.300554483350188528e-01,3.611680938114545381e+00 -9.515952884232455888e-01,3.578091915091393016e+00 -9.683484973807555685e-01,3.557965292123382195e+00 -9.827083907729071699e-01,3.542320554414193357e+00 -9.994615997304171495e-01,3.519944616677433302e+00 +0.001066078485433497, 4.584263211444843 +0.041273779983457604, 4.542437342855614 +0.065398400882272, 4.52965007211667 +0.08722543883834222, 4.523324753404195 +0.11154152498238534, 4.4989323580008005 +0.13547468063597112, 4.46985870879382 +0.15940783628955701, 4.429538485743097 +0.18174544823290373, 4.389207099839924 +0.2056786038864893, 4.3421389324829525 +0.228016215829836, 4.29955823181103 +0.25115159962830247, 4.2547337977965825 +0.275084755281888, 4.216662889514609 +0.2982201390803543, 4.178586399806408 +0.3221532947339403, 4.147263435830681 +0.3452886785324063, 4.111436260891228 +0.3692218341859923, 4.082362611684249 +0.3939527616946974, 4.055543858672244 +0.41469482992780504, 4.030946513297861 +0.4402235292916299, 4.006382656480829 +0.46176336937985707, 3.9840402073014207 +0.4864942968885624, 3.9684680281331595 +0.5088319088319091, 3.9528791046862226 +0.5327650644854949, 3.941799973629234 +0.5566982201390807, 3.923972898265999 +0.5782380602273078, 3.919624967236581 +0.598182356605296, 3.913016558585964 +0.6484419834778261, 3.911118873669402 +0.6723751391314119, 3.9112863164561573 +0.6971060666401172, 3.897963452056645 +0.7194436785834639, 3.882374528609708 +0.7433768342370495, 3.860048823708975 +0.7649166743252769, 3.817462541610827 +0.7880520581237431, 3.7883833109776224 +0.8127829856324482, 3.759315243196868 +0.8351205975757949, 3.732479745906187 +0.8590537532293809, 3.7079047262367046 +0.8821891370278472, 3.6810748103722486 +0.9053245208263132, 3.649746264970295 +0.9300554483350187, 3.6116809381145454 +0.9515952884232457, 3.5780919150913926 +0.9683484973807557, 3.557965292123382 +0.9827083907729073, 3.5423205544141934 +0.9994615997304173, 3.5199446166774333 diff --git a/pybamm/parameters/parameter_values.py b/pybamm/parameters/parameter_values.py index 15d20d26c9..1a17da1767 100644 --- a/pybamm/parameters/parameter_values.py +++ b/pybamm/parameters/parameter_values.py @@ -11,6 +11,8 @@ from collections import defaultdict import inspect import json +from textwrap import fill +import shutil class ParameterValues: @@ -84,6 +86,12 @@ def __init__(self, values=None, chemistry=None): # Then update with values dictionary or file if values is not None: if isinstance(values, dict) and "chemistry" in values: + warnings.warn( + "Creating a parameter set from a dictionary of components has " + "been deprecated and will be removed in a future release. " + "Define the parameter set in a python script instead.", + DeprecationWarning, + ) self.update_from_chemistry(values) else: if isinstance(values, str): @@ -121,6 +129,11 @@ def __init__(self, values=None, chemistry=None): # This is for the conversion to Julia (ModelingToolkit) self._replace_callable_function_parameters = True + # save citations + if hasattr(self, "citations"): + for citation in self.citations: + pybamm.citations.register(citation) + def __getitem__(self, key): return self._dict_items[key] @@ -180,6 +193,8 @@ def update_from_chemistry(self, chemistry): if isinstance(chemistry, str): chemistry = getattr(pybamm.parameter_sets, chemistry) + self.chemistry = chemistry + base_chemistry = chemistry["chemistry"] # Load each component name @@ -234,8 +249,8 @@ def update_from_chemistry(self, chemistry): self.citations = chemistry["citation"] if not isinstance(self.citations, list): self.citations = [self.citations] - for citation in self.citations: - pybamm.citations.register(citation) + else: + self.citations = [] def read_parameters_csv(self, filename): """Reads parameters from csv file into dict. @@ -970,7 +985,7 @@ def find_parameter(path): return trial_path raise FileNotFoundError("Could not find parameter {}".format(path)) - def print_as_python_script(self, name, path=None): + def export_python_script(self, name, path=None): """ Print a python script that can be used to reproduce the parameter set @@ -981,6 +996,7 @@ def print_as_python_script(self, name, path=None): path : string, optional Optional path for the location where the parameter set should be saved """ + # Process file name filename = name if not filename.endswith(".py"): filename = filename + ".py" @@ -988,63 +1004,78 @@ def print_as_python_script(self, name, path=None): filename = path + filename filename = pybamm.get_parameters_filepath(filename) + # Initialize preamble = "import pybamm\n" function_output = "" data_output = "" - negative_dict_output = "\n # Negative electrode" - separator_dict_output = "\n # Separator" - positive_dict_output = "\n # Positive electrode" - other_dict_output = "\n # Other" - - use_np = False - for k, v in self.items(): - if callable(v): - # write the function body to the file - function_output += inspect.getsource(v) + "\n" - v = v.__name__ - elif isinstance(v, tuple): - # save the data to a separate csv file and load it in the parameter set - data_name, data = v - data_file = path + f"{data_name}.csv" - # save data to a file - data_2D = np.hstack([data[0][0][:, np.newaxis], data[1][:, np.newaxis]]) - np.savetxt(data_file, data_2D, delimiter=",") - # add code to load data - data_output += ( - f"{data_name}_filename = pybamm.get_parameters_filepath" - f"('{path}{data_name}.csv')\n" - f"{data_name} = np.loadtxt({data_name}_filename, delimiter=',')\n" - ) - # replace data with data_name - v = f"('{data_name}', {data_name})" - use_np = True - elif np.isnan(v): - continue # skip this value - - # add line to the parameter output in the appropriate section - param_output = f"""\n "{k}": {v},""" - if "negative electrode" in k.lower(): - negative_dict_output += param_output - elif "separator" in k.lower(): - separator_dict_output += param_output - elif "positive electrode" in k.lower(): - positive_dict_output += param_output - else: - other_dict_output += param_output + dict_output = "" - if use_np: - preamble += "import numpy as np\n" + component_params_by_group = getattr( + self, "component_params_by_group", {"": self} + ) + # Loop through each component group and add appropriate functions, data, and + # parameters to the relevant strings + for component_group, items in component_params_by_group.items(): + if component_group != "": + dict_output += f"\n # {component_group}" + for k in items.keys(): + v = self[k] + if callable(v): + # write the function body to the file + function_output += inspect.getsource(v) + "\n" + v = v.__name__ + elif isinstance(v, tuple): + # save the data to a separate csv file + # and load it in the parameter set + data_name = v[0] + data_file_old = os.path.join( + path, + component_group.replace(" ", "_") + "s", + self.chemistry[component_group], + f"{data_name}.csv", + ) + data_file_new = path + f"{data_name}.csv" + shutil.copyfile(data_file_old, data_file_new) + + # add code to load data + data_output += ( + f"{data_name}_filename = pybamm.get_parameters_filepath" + f"('{path}{data_name}.csv')\n" + f"{data_name} = pd.read_csv" + f"({data_name}_filename, comment='#')\n" + ) + # replace data with data_name + v = f"('{data_name}', {data_name})" + if "import pandas as pd" not in preamble: + preamble += "import pandas as pd\n" + + elif np.isnan(v): + continue # skip this value + + # add line to the parameter output in the appropriate section + dict_output += f'\n "{k}": {v},' + + # save citation info + if hasattr(self, "citations"): + dict_output += ( + "\n # citations" + f"\n 'citations': {self.citations}," + ) + + # read README.md if they exist and save info + docstring = self._create_docstring_from_readmes(name) + + # construct the output string output = ( preamble + "\n\n" + function_output + data_output - + "\ndef get_parameter_values():\n return {" - + negative_dict_output - + separator_dict_output - + positive_dict_output - + other_dict_output + + "\n# Call dict via a function to avoid errors when editing in place" + + "\ndef get_parameter_values():" + + docstring + + "\n return {" + + dict_output + "\n }" ) @@ -1053,5 +1084,48 @@ def print_as_python_script(self, name, path=None): output = output.replace(f"{funcname}(", f"pybamm.{funcname}(") output = output.replace("constants", "pybamm.constants") + # save to file with open(filename, "w") as f: f.write(output) + + def _create_docstring_from_readmes(self, name): + if hasattr(self, "chemistry"): + chemistry = self.chemistry + lines = [] + for component_group, component in chemistry.items(): + if component_group in self.component_params_by_group: + readme = os.path.join( + "input", + "parameters", + self.chemistry["chemistry"], + component_group.replace(" ", "_") + "s", + component, + "README.md", + ) + readme = pybamm.get_parameters_filepath(readme) + if os.path.isfile(readme): + with open(readme, "r") as f: + lines += f.readlines() + + # lines, ind = np.unique(lines, return_index=True) + # lines = lines[np.argsort(ind)] + lines = [ + fill( + line, + 88, + drop_whitespace=False, + initial_indent=" ", + subsequent_indent=" ", + ) + + "\n" + for line in lines + ] + docstring = ( + f'\n """\n # {name} parameter set\n' + + "".join(lines) + + ' """\n' + ) + else: + docstring = "" + + return docstring diff --git a/tests/unit/test_parameters/data/process_symbol_test_function.py b/tests/unit/test_parameters/data/process_symbol_test_function.py deleted file mode 100644 index 29bc56662f..0000000000 --- a/tests/unit/test_parameters/data/process_symbol_test_function.py +++ /dev/null @@ -1,11 +0,0 @@ -def process_symbol_test_function(var): - """ - This function tests process_symbol for Function nodes. - - Parameters - ---------- - var: numeric - Some variable - - """ - return 123 * var diff --git a/tests/unit/test_parameters/test_parameter_values.py b/tests/unit/test_parameters/test_parameter_values.py index 3ab5f613af..c701a3aef6 100644 --- a/tests/unit/test_parameters/test_parameter_values.py +++ b/tests/unit/test_parameters/test_parameter_values.py @@ -7,6 +7,7 @@ import shutil import subprocess import unittest +import inspect import numpy as np import pandas as pd @@ -56,7 +57,7 @@ def test_init(self): # from file param = pybamm.ParameterValues( - "lithium_ion/positive_electrodes/lico2_Marquis2019/" + "parameters.csv" + "lithium_ion/positive_electrodes/lico2_Marquis2019/parameters.csv" ) self.assertEqual(param["Positive electrode porosity"], 0.3) @@ -330,18 +331,13 @@ def test_process_input_parameter(self): self.assertEqual(processed_c.evaluate(inputs={"c": 5}), 10) def test_process_function_parameter(self): + def test_function(var): + return 123 * var + parameter_values = pybamm.ParameterValues( { "a": 3, - "func": pybamm.load_function( - os.path.join( - "tests", - "unit", - "test_parameters", - "data", - "process_symbol_test_function.py", - ) - ), + "func": test_function, "const": 254, "float_func": lambda x: 42, "mult": pybamm.InputParameter("b") * 5, @@ -1002,6 +998,44 @@ def some_function(self): self.assertEqual(df[1]["b"], "[function]some_function") self.assertEqual(df[1]["c"], "[data]some_data") + def test_export_python_script(self): + parameter_values = pybamm.ParameterValues(pybamm.parameter_sets.Ai2020) + path = "input/parameters/lithium_ion/" + parameter_values.export_python_script("Ai2020_test", path=path) + + # test that loading the parameter set works + new_parameter_values = pybamm.ParameterValues("Ai2020_test") + + # Parameters should be the same + self.assertEqual( + new_parameter_values["Negative particle radius [m]"], + parameter_values["Negative particle radius [m]"], + ) + + # Functions should be the same, except without 'pybamm.' + self.assertEqual( + inspect.getsource( + new_parameter_values[ + "Negative electrode exchange-current density [A.m-2]" + ] + ).replace(" pybamm.", " "), + inspect.getsource( + parameter_values["Negative electrode exchange-current density [A.m-2]"] + ), + ) + # Data should be the same + np.testing.assert_array_equal( + new_parameter_values["Negative electrode OCP [V]"][1][0], + parameter_values["Negative electrode OCP [V]"][1][0], + ) + np.testing.assert_array_equal( + new_parameter_values["Negative electrode OCP [V]"][1][1], + parameter_values["Negative electrode OCP [V]"][1][1], + ) + + # remove the file + os.remove(os.path.join(pybamm.ABSOLUTE_PATH, "pybamm", path, "Ai2020_test.py")) + if __name__ == "__main__": print("Add -v for more debug output") From ff344a85901da5ed76cbe00ceaab89cf8078e492 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Tue, 4 Oct 2022 14:25:57 -0400 Subject: [PATCH 05/28] #2334 fix load_function --- pybamm/util.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pybamm/util.py b/pybamm/util.py index f23eb4eaac..892ac21601 100644 --- a/pybamm/util.py +++ b/pybamm/util.py @@ -230,14 +230,14 @@ def load_function(filename, funcname=None): function The python function loaded from the file. """ - if funcname is None: - # Read funcname by splitting the file (assumes funcname is the same as filename) - _, funcname = os.path.split(filename) - # Remove `.py` from the file name if filename.endswith(".py"): filename = filename.replace(".py", "") + if funcname is None: + # Read funcname by splitting the file (assumes funcname is the same as filename) + _, funcname = os.path.split(filename) + # Store the current working directory orig_dir = os.getcwd() From 0d56ecf6a394301af93bc1eff848fe418bd4102a Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Tue, 4 Oct 2022 16:46:52 -0400 Subject: [PATCH 06/28] #2334 fixing tests --- .../input/parameters/lead_acid/Sulzer2019.py | 121 +++--- .../lead_Sulzer2019/parameters.csv | 1 - pybamm/input/parameters/lithium_ion/Ai2020.py | 233 +++++------ .../input/parameters/lithium_ion/Chen2020.py | 183 +++++---- .../lithium_ion/Chen2020_composite.py | 182 ++++----- .../input/parameters/lithium_ion/Ecker2015.py | 367 ++++++++---------- .../parameters/lithium_ion/Marquis2019.py | 164 ++++---- .../parameters/lithium_ion/Mohtat2020.py | 87 ++--- .../parameters/lithium_ion/NCA_Kim2011.py | 206 +++++----- .../input/parameters/lithium_ion/OKane2022.py | 224 +++++------ .../parameters/lithium_ion/ORegan2022.py | 149 +++---- .../input/parameters/lithium_ion/Prada2013.py | 127 +++--- .../parameters/lithium_ion/Ramadass2004.py | 190 +++++---- pybamm/input/parameters/lithium_ion/Xu2019.py | 164 ++++---- pybamm/parameters/parameter_values.py | 36 +- .../test_parameters/test_parameter_values.py | 14 +- 16 files changed, 1103 insertions(+), 1345 deletions(-) diff --git a/pybamm/input/parameters/lead_acid/Sulzer2019.py b/pybamm/input/parameters/lead_acid/Sulzer2019.py index 1fd187041c..c4ad3d6148 100644 --- a/pybamm/input/parameters/lead_acid/Sulzer2019.py +++ b/pybamm/input/parameters/lead_acid/Sulzer2019.py @@ -13,14 +13,13 @@ def lead_ocp_Bode1977(m): """ U = ( -0.294 - - 0.074 * log10(m) - - 0.030 * log10(m) ** 2 - - 0.031 * log10(m) ** 3 - - 0.012 * log10(m) ** 4 + - 0.074 * pybamm.log10(m) + - 0.030 * pybamm.log10(m) ** 2 + - 0.031 * pybamm.log10(m) ** 3 + - 0.012 * pybamm.log10(m) ** 4 ) return U - def lead_exchange_current_density_Sulzer2019(c_e, T): """ Dimensional exchange-current density in the negative (lead) electrode, from [1]_ @@ -52,7 +51,6 @@ def lead_exchange_current_density_Sulzer2019(c_e, T): return j0 - def lead_dioxide_ocp_Bode1977(m): """ Dimensional open-circuit voltage in the positive (lead-dioxide) electrode [V], @@ -65,14 +63,13 @@ def lead_dioxide_ocp_Bode1977(m): """ U = ( 1.628 - + 0.074 * log10(m) - + 0.033 * log10(m) ** 2 - + 0.043 * log10(m) ** 3 - + 0.022 * log10(m) ** 4 + + 0.074 * pybamm.log10(m) + + 0.033 * pybamm.log10(m) ** 2 + + 0.043 * pybamm.log10(m) ** 3 + + 0.022 * pybamm.log10(m) ** 4 ) return U - def lead_dioxide_exchange_current_density_Sulzer2019(c_e, T): """ Dimensional exchange-current density in the positive electrode, from [1]_ @@ -110,7 +107,6 @@ def lead_dioxide_exchange_current_density_Sulzer2019(c_e, T): return j0 - def oxygen_exchange_current_density_Sulzer2019(c_e, T): """ Dimensional oxygen exchange-current density in the positive electrode, from [1]_ @@ -142,7 +138,6 @@ def oxygen_exchange_current_density_Sulzer2019(c_e, T): return j0 - def conductivity_Gu1997(c_e): """ Dimensional conductivity of sulfuric acid [S.m-1], from [1]_ citing [2]_ and @@ -164,7 +159,6 @@ def conductivity_Gu1997(c_e): """ return c_e * pybamm.exp(6.23 - 1.34e-4 * c_e - 1.61e-8 * c_e**2) * 1e-4 - def darken_thermodynamic_factor_Chapman1968(c_e): """ Dimensional Darken thermodynamic factor of sulfuric acid, from data in @@ -182,7 +176,6 @@ def darken_thermodynamic_factor_Chapman1968(c_e): """ return 0.49 + 4.1e-4 * c_e - def diffusivity_Gu1997(c_e): """ Dimensional Fickian diffusivity of sulfuric acid [m2.s-1], from [1]_ citing [2]_ @@ -204,7 +197,6 @@ def diffusivity_Gu1997(c_e): """ return (1.75 + 260e-6 * c_e) * 1e-9 - def viscosity_Chapman1968(c_e): """ Dimensional viscosity of sulfuric acid [kg.m-1.s-1], from data in [1]_, as a @@ -224,57 +216,57 @@ def viscosity_Chapman1968(c_e): def get_parameter_values(): """ # Sulzer2019 parameter set - # BBOXX cell parameters - - Cell-specific parameters for BBOXX lead-acid cells, from the paper - - > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster + # BBOXX cell parameters + + Cell-specific parameters for BBOXX lead-acid cells, from the paper + + > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - # Lead negative electrode parameters - - Parameters for a lead negative electrode, from the paper - - > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + # Lead negative electrode parameters + + Parameters for a lead negative electrode, from the paper + + > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - - and references therein. - # AGM separator parameters - - Parameters for an Absorbent Glass Mat (AGM) separator, from the paper - - > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + + and references therein. + # AGM separator parameters + + Parameters for an Absorbent Glass Mat (AGM) separator, from the paper + + > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - - and references therein. - # Lead-dioxide positive electrode parameters - - Parameters for a lead-dioxide positive electrode, from the paper - - > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + + and references therein. + # Lead-dioxide positive electrode parameters + + Parameters for a lead-dioxide positive electrode, from the paper + + > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - - and references therein. - # Sulfuric acid electrolyte parameters - - Parameters for a sulfuric acid electrolyte, from the paper - - > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + + and references therein. + # Sulfuric acid electrolyte parameters + + Parameters for a sulfuric acid electrolyte, from the paper + + > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - - and references therein. - # 1C discharge from full - - Discharge lead-acid battery from full charge at 1C. + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + + and references therein. + # 1C discharge from full + + Discharge lead-acid battery from full charge at 1C. """ return { @@ -308,7 +300,6 @@ def get_parameter_values(): "Negative electrode pore size [m]": 1e-07, "Maximum porosity of negative electrode": 0.53, "Molar volume of lead [m3.mol-1]": 1.82539682539683e-05, - "Molar volume of lead sulfate [m3.mol-1]": 4.81717011128776e-05, "Negative electrode volumetric capacity [C.m-3]": 3473000000.0, "Negative electrode open-circuit potential [V]": lead_ocp_Bode1977, "Negative electrode surface area to volume ratio [m-1]": 2300000.0, @@ -415,5 +406,5 @@ def get_parameter_values(): "Initial oxygen concentration [mol.m-3]": 0.0, "Initial temperature [K]": 294.85, # citations - "citations": ["Sulzer2019physical"], - } + 'citations': ['Sulzer2019physical'], + } \ No newline at end of file diff --git a/pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/parameters.csv b/pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/parameters.csv index 54987b321b..d742c961e6 100644 --- a/pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/parameters.csv +++ b/pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/parameters.csv @@ -6,7 +6,6 @@ Negative electrode conductivity [S.m-1],4800000,,Lead Negative electrode pore size [m],1E-07,, Maximum porosity of negative electrode,0.53,, Molar volume of lead [m3.mol-1],1.82539682539683E-05,,Calculated as 207e-3 / 11.34e3 -Molar volume of lead sulfate [m3.mol-1],4.81717011128776E-05,,Calculated as 303e-3 / 6.29e3 Negative electrode volumetric capacity [C.m-3],3.473e9,bernardi1995mathematical, Negative electrode open-circuit potential [V],[function]lead_ocp_Bode1977,, ,,, diff --git a/pybamm/input/parameters/lithium_ion/Ai2020.py b/pybamm/input/parameters/lithium_ion/Ai2020.py index 6eb929df0b..86d8aeae53 100644 --- a/pybamm/input/parameters/lithium_ion/Ai2020.py +++ b/pybamm/input/parameters/lithium_ion/Ai2020.py @@ -1,5 +1,4 @@ import pybamm -import pandas as pd def graphite_diffusivity_Dualfoil1998(sto, T): @@ -34,7 +33,6 @@ def graphite_diffusivity_Dualfoil1998(sto, T): arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / T_ref - 1 / T)) return D_ref * arrhenius - def graphite_electrolyte_exchange_current_density_Dualfoil1998( c_e, c_s_surf, c_s_max, T ): @@ -72,7 +70,6 @@ def graphite_electrolyte_exchange_current_density_Dualfoil1998( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def graphite_entropy_Enertech_Ai2020_function(sto, c_s_max): """ Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at @@ -125,7 +122,6 @@ def graphite_entropy_Enertech_Ai2020_function(sto, c_s_max): return du_dT - def graphite_volume_change_Ai2020(sto, c_s_max): """ Graphite particle volume change as a function of stochiometry [1, 2]. @@ -177,7 +173,6 @@ def graphite_volume_change_Ai2020(sto, c_s_max): ) return t_change - def graphite_cracking_rate_Ai2020(T_dim): """ graphite particle cracking rate as a function of temperature [1, 2]. @@ -211,7 +206,6 @@ def graphite_cracking_rate_Ai2020(T_dim): arrhenius = pybamm.exp(Eac_cr / pybamm.constants.R * (1 / T_dim - 1 / T_ref)) return k_cr * arrhenius - def lico2_diffusivity_Dualfoil1998(sto, T): """ LiCo2 diffusivity as a function of stochiometry, in this case the @@ -239,7 +233,6 @@ def lico2_diffusivity_Dualfoil1998(sto, T): arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / T_ref - 1 / T)) return D_ref * arrhenius - def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between lico2 and LiPF6 in @@ -274,7 +267,6 @@ def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def lico2_entropic_change_Ai2020_function(sto, c_s_max): """ Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at @@ -324,7 +316,6 @@ def lico2_entropic_change_Ai2020_function(sto, c_s_max): return du_dT - def lico2_volume_change_Ai2020(sto, c_s_max): """ lico2 particle volume change as a function of stochiometry [1, 2]. @@ -356,7 +347,6 @@ def lico2_volume_change_Ai2020(sto, c_s_max): t_change = omega * c_s_max * sto return t_change - def lico2_cracking_rate_Ai2020(T_dim): """ lico2 particle cracking rate as a function of temperature [1, 2]. @@ -390,7 +380,6 @@ def lico2_cracking_rate_Ai2020(T_dim): arrhenius = pybamm.exp(Eac_cr / pybamm.constants.R * (1 / T_dim - 1 / T_ref)) return k_cr * arrhenius - def dlnf_dlnc_Ai2020(c_e, T, T_ref=298.3, t_plus=0.38): """ Activity dependence of LiPF6 in EC:DMC as a function of ion concentration. @@ -423,7 +412,6 @@ def dlnf_dlnc_Ai2020(c_e, T, T_ref=298.3, t_plus=0.38): ) / (1 - t_plus) return dlnf_dlnc - def electrolyte_diffusivity_Ai2020(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. @@ -453,7 +441,6 @@ def electrolyte_diffusivity_Ai2020(c_e, T): return D_c_e - def electrolyte_conductivity_Ai2020(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration. @@ -496,122 +483,111 @@ def electrolyte_conductivity_Ai2020(c_e, T): return sigma_e -graphite_ocp_Enertech_Ai2020_filename = pybamm.get_parameters_filepath( - "pybamm/input/parameters/lithium_ion/graphite_ocp_Enertech_Ai2020.csv" -) -graphite_ocp_Enertech_Ai2020 = pd.read_csv( - graphite_ocp_Enertech_Ai2020_filename, comment="#" -) -lico2_ocp_Ai2020_filename = pybamm.get_parameters_filepath( - "pybamm/input/parameters/lithium_ion/lico2_ocp_Ai2020.csv" -) -lico2_ocp_Ai2020 = pd.read_csv(lico2_ocp_Ai2020_filename, comment="#") - # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ # Ai2020 parameter set - # Enertech cell parameters - - Parameters for the Enertech cell, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # Enertech Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # Enertech Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # Lithium Cobalt Oxide positive electrode parameters - - Parameters for a lithium Cobalt Oxide positive electrode, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # Enertech Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + # Enertech cell parameters + + Parameters for the Enertech cell, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # Enertech Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # Enertech Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # Lithium Cobalt Oxide positive electrode parameters + + Parameters for a lithium Cobalt Oxide positive electrode, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # Enertech Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. """ return { @@ -665,10 +641,7 @@ def get_parameter_values(): "Negative electrode conductivity [S.m-1]": 100.0, "Maximum concentration in negative electrode [mol.m-3]": 28700.0, "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_Dualfoil1998, - "Negative electrode OCP [V]": ( - "graphite_ocp_Enertech_Ai2020", - graphite_ocp_Enertech_Ai2020, - ), + "Negative electrode OCP [V]": '[data]graphite_ocp_Enertech_Ai2020', "Negative electrode porosity": 0.33, "Negative electrode active material volume fraction": 0.61, "Negative particle radius [m]": 5e-06, @@ -702,7 +675,7 @@ def get_parameter_values(): "Positive electrode conductivity [S.m-1]": 10.0, "Maximum concentration in positive electrode [mol.m-3]": 49943.0, "Positive electrode diffusivity [m2.s-1]": lico2_diffusivity_Dualfoil1998, - "Positive electrode OCP [V]": ("lico2_ocp_Ai2020", lico2_ocp_Ai2020), + "Positive electrode OCP [V]": '[data]lico2_ocp_Ai2020', "Positive electrode porosity": 0.32, "Positive electrode active material volume fraction": 0.62, "Positive particle radius [m]": 3e-06, @@ -758,5 +731,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 21725.0, "Initial temperature [K]": 298.15, # citations - "citations": ["Ai2019"], - } + 'citations': ['Ai2019'], + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Chen2020.py b/pybamm/input/parameters/lithium_ion/Chen2020.py index 6a2a064360..093520972e 100644 --- a/pybamm/input/parameters/lithium_ion/Chen2020.py +++ b/pybamm/input/parameters/lithium_ion/Chen2020.py @@ -34,7 +34,6 @@ def graphite_LGM50_ocp_Chen2020(sto): return u_eq - def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( c_e, c_s_surf, c_s_max, T ): @@ -73,7 +72,6 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def nmc_LGM50_ocp_Chen2020(sto): """ LG M50 NMC open circuit potential as a function of stochiometry, fit taken @@ -107,7 +105,6 @@ def nmc_LGM50_ocp_Chen2020(sto): return u_eq - def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -144,7 +141,6 @@ def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def electrolyte_diffusivity_Nyman2008(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -175,7 +171,6 @@ def electrolyte_diffusivity_Nyman2008(c_e, T): return D_c_e - def electrolyte_conductivity_Nyman2008(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -213,95 +208,95 @@ def electrolyte_conductivity_Nyman2008(c_e, T): def get_parameter_values(): """ # Chen2020 parameter set - # LG M50 cell parameters - - Parameters for an LG M50 cell, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # LG M50 Graphite negative electrode parameters - - Parameters for a LG M50 graphite negative electrode, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # Separator parameters - - Parameters for an LG M50 separator, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # NMC 811 positive electrode parameters - - Parameters for an LG M50 NMC 811 positive electrode, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and - modelling of the mass transport phenomena in LiPF6-EC-EMC - electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) - Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + # LG M50 cell parameters + + Parameters for an LG M50 cell, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # LG M50 Graphite negative electrode parameters + + Parameters for a LG M50 graphite negative electrode, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # Separator parameters + + Parameters for an LG M50 separator, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # NMC 811 positive electrode parameters + + Parameters for an LG M50 NMC 811 positive electrode, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and + modelling of the mass transport phenomena in LiPF6-EC-EMC + electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) + Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. """ return { @@ -413,5 +408,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 17038.0, "Initial temperature [K]": 298.15, # citations - "citations": ["Chen2020"], - } + 'citations': ['Chen2020'], + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Chen2020_composite.py b/pybamm/input/parameters/lithium_ion/Chen2020_composite.py index cbd0cfe304..7f1c725189 100644 --- a/pybamm/input/parameters/lithium_ion/Chen2020_composite.py +++ b/pybamm/input/parameters/lithium_ion/Chen2020_composite.py @@ -1,5 +1,4 @@ import pybamm -import pandas as pd def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( @@ -40,7 +39,6 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def silicon_ocp_lithiation_Mark2016(sto): """ silicon Open Circuit Potential (OCP) as a a function of the @@ -84,7 +82,6 @@ def silicon_ocp_lithiation_Mark2016(sto): ) return U_lithiation - def silicon_ocp_delithiation_Mark2016(sto): """ silicon Open Circuit Potential (OCP) as a a function of the @@ -128,7 +125,6 @@ def silicon_ocp_delithiation_Mark2016(sto): ) return U_delithiation - def silicon_LGM50_electrolyte_exchange_current_density_Chen2020( c_e, c_s_surf, c_s_max, T ): @@ -170,7 +166,6 @@ def silicon_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def nmc_LGM50_ocp_Chen2020(sto): """ LG M50 NMC open circuit potential as a function of stochiometry, fit taken @@ -204,7 +199,6 @@ def nmc_LGM50_ocp_Chen2020(sto): return u_eq - def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -241,7 +235,6 @@ def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def electrolyte_diffusivity_Nyman2008(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -272,7 +265,6 @@ def electrolyte_diffusivity_Nyman2008(c_e, T): return D_c_e - def electrolyte_conductivity_Nyman2008(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -306,97 +298,90 @@ def electrolyte_conductivity_Nyman2008(c_e, T): return sigma_e -graphite_ocp_Enertech_Ai2020_filename = pybamm.get_parameters_filepath( - "pybamm/input/parameters/lithium_ion/graphite_ocp_Enertech_Ai2020.csv" -) -graphite_ocp_Enertech_Ai2020 = pd.read_csv( - graphite_ocp_Enertech_Ai2020_filename, comment="#" -) - # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ # Chen2020_composite parameter set - # LG M50 cell parameters - - Parameters for an LG M50 cell, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # Graphite/silicon negative electrode parameters - - Parameters for a composite graphite/silicon negative electrode, from the paper - + # LG M50 cell parameters + + Parameters for an LG M50 cell, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # Graphite/silicon negative electrode parameters + + Parameters for a composite graphite/silicon negative electrode, from the paper + > Ai, W., Kirkaldy, N., Jiang, Y., Offer, G., Wang, H., & Wu, B. (2022). A composite - electrode model for lithium-ion batteries with silicon/graphite negative - electrodes. Journal of Power Sources, 527, 231142. - - based on the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # Separator parameters - - Parameters for an LG M50 separator, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # NMC 811 positive electrode parameters - - Parameters for an LG M50 NMC 811 positive electrode, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and - modelling of the mass transport phenomena in LiPF6-EC-EMC - electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) - Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # SEI parameters - - Example parameters for composite SEI on silicon/graphite. Both phases use the same - values, from the paper - - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. + electrode model for lithium-ion batteries with silicon/graphite negative + electrodes. Journal of Power Sources, 527, 231142. + + based on the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # Separator parameters + + Parameters for an LG M50 separator, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # NMC 811 positive electrode parameters + + Parameters for an LG M50 NMC 811 positive electrode, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and + modelling of the mass transport phenomena in LiPF6-EC-EMC + electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) + Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # SEI parameters + + Example parameters for composite SEI on silicon/graphite. Both phases use the same + values, from the paper + + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. """ return { @@ -450,10 +435,7 @@ def get_parameter_values(): "Primary: Maximum concentration in negative electrode [mol.m-3]": 28700.0, "Primary: Initial concentration in negative electrode [mol.m-3]": 27700.0, "Primary: Negative electrode diffusivity [m2.s-1]": 5.5e-14, - "Primary: Negative electrode OCP [V]": ( - "graphite_ocp_Enertech_Ai2020", - graphite_ocp_Enertech_Ai2020, - ), + "Primary: Negative electrode OCP [V]": '[data]graphite_ocp_Enertech_Ai2020', "Negative electrode porosity": 0.25, "Primary: Negative electrode active material volume fraction": 0.735, "Primary: Negative particle radius [m]": 5.86e-06, @@ -523,5 +505,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 17038.0, "Initial temperature [K]": 298.15, # citations - "citations": ["Chen2020", "Ai2022"], - } + 'citations': ['Chen2020', 'Ai2022'], + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Ecker2015.py b/pybamm/input/parameters/lithium_ion/Ecker2015.py index 9c91cb1ed2..082e22e5dc 100644 --- a/pybamm/input/parameters/lithium_ion/Ecker2015.py +++ b/pybamm/input/parameters/lithium_ion/Ecker2015.py @@ -1,5 +1,4 @@ import pybamm -import pandas as pd def graphite_diffusivity_Ecker2015(sto, T): @@ -33,13 +32,10 @@ def graphite_diffusivity_Ecker2015(sto, T): D_ref = 8.4e-13 * pybamm.exp(-11.3 * sto) + 8.2e-15 E_D_s = 3.03e4 - arrhenius = pybamm.exp(-E_D_s / (pybamm.constants.R * T)) * pybamm.exp( - E_D_s / (pybamm.constants.R * 296) - ) + arrhenius = pybamm.exp(-E_D_s / (pybamm.constants.R * T)) * pybamm.exp(E_D_s / (pybamm.constants.R * 296)) return D_ref * arrhenius - def graphite_ocp_Ecker2015_function(sto): """ Graphite OCP as a function of stochiometry [1, 2, 3]. @@ -100,7 +96,6 @@ def graphite_ocp_Ecker2015_function(sto): return u_eq - def graphite_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in @@ -138,20 +133,15 @@ def graphite_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_m k_ref = 1.11 * 1e-10 # multiply by Faraday's constant to get correct units - m_ref = ( - pybamm.constants.F * k_ref - ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = pybamm.constants.F * k_ref # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 53400 - arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp( - E_r / (pybamm.constants.R * 296.15) - ) + arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp(E_r / (pybamm.constants.R * 296.15)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def nco_diffusivity_Ecker2015(sto, T): """ NCO diffusivity as a function of stochiometry [1, 2, 3]. @@ -183,13 +173,10 @@ def nco_diffusivity_Ecker2015(sto, T): D_ref = 3.7e-13 - 3.4e-13 * pybamm.exp(-12 * (sto - 0.62) * (sto - 0.62)) E_D_s = 8.06e4 - arrhenius = pybamm.exp(-E_D_s / (pybamm.constants.R * T)) * pybamm.exp( - E_D_s / (pybamm.constants.R * 296.15) - ) + arrhenius = pybamm.exp(-E_D_s / (pybamm.constants.R * T)) * pybamm.exp(E_D_s / (pybamm.constants.R * 296.15)) return D_ref * arrhenius - def nco_ocp_Ecker2015_function(sto): """ NCO OCP as a function of stochiometry [1, 2, 3]. @@ -245,7 +232,6 @@ def nco_ocp_Ecker2015_function(sto): ) return u_eq - def nco_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NCO and LiPF6 in @@ -283,20 +269,15 @@ def nco_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_max, T k_ref = 3.01e-11 # multiply by Faraday's constant to get correct units - m_ref = ( - pybamm.constants.F * k_ref - ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = pybamm.constants.F * k_ref # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 4.36e4 - arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp( - E_r / (pybamm.constants.R * 296.15) - ) + arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp(E_r / (pybamm.constants.R * 296.15)) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def electrolyte_diffusivity_Ecker2015(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration [1, 2, 3]. @@ -328,20 +309,12 @@ def electrolyte_diffusivity_Ecker2015(c_e, T): # The diffusivity epends on the electrolyte conductivity inputs = {"Electrolyte concentration [mol.m-3]": c_e, "Temperature [K]": T} - sigma_e = pybamm.Functionpybamm.Parameter( - "Electrolyte conductivity [S.m-1]", inputs - ) + sigma_e = pybamm.FunctionParameter("Electrolyte conductivity [S.m-1]", inputs) - D_c_e = ( - (pybamm.constants.k_b / (pybamm.constants.F * pybamm.constants.q_e)) - * sigma_e - * T - / c_e - ) + D_c_e = (pybamm.constants.k_b / (pybamm.constants.F * pybamm.constants.q_e)) * sigma_e * T / c_e return D_c_e - def electrolyte_conductivity_Ecker2015(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration [1, 2, 3]. @@ -385,172 +358,151 @@ def electrolyte_conductivity_Ecker2015(c_e, T): return sigma_e -measured_graphite_diffusivity_Ecker2015_filename = pybamm.get_parameters_filepath( - "pybamm/input/parameters/lithium_ion/measured_graphite_diffusivity_Ecker2015.csv" -) -measured_graphite_diffusivity_Ecker2015 = pd.read_csv( - measured_graphite_diffusivity_Ecker2015_filename, comment="#" -) -graphite_ocp_Ecker2015_filename = pybamm.get_parameters_filepath( - "pybamm/input/parameters/lithium_ion/graphite_ocp_Ecker2015.csv" -) -graphite_ocp_Ecker2015 = pd.read_csv(graphite_ocp_Ecker2015_filename, comment="#") -measured_nco_diffusivity_Ecker2015_filename = pybamm.get_parameters_filepath( - "pybamm/input/parameters/lithium_ion/measured_nco_diffusivity_Ecker2015.csv" -) -measured_nco_diffusivity_Ecker2015 = pd.read_csv( - measured_nco_diffusivity_Ecker2015_filename, comment="#" -) -nco_ocp_Ecker2015_filename = pybamm.get_parameters_filepath( - "pybamm/input/parameters/lithium_ion/nco_ocp_Ecker2015.csv" -) -nco_ocp_Ecker2015 = pd.read_csv(nco_ocp_Ecker2015_filename, comment="#") - # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ # Ecker2015 parameter set - # Kokam SLPB 75106100 cell parameters - - Parameters for a Kokam SLPB 75106100 cell, from the papers - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery I. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The tab placement parameters are taken from measurements in - - > Hales, Alastair, et al. "The cell cooling coefficient: a standard to define heat + # Kokam SLPB 75106100 cell parameters + + Parameters for a Kokam SLPB 75106100 cell, from the papers + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery I. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The tab placement parameters are taken from measurements in + + > Hales, Alastair, et al. "The cell cooling coefficient: a standard to define heat rejection from lithium-ion batteries." Journal of The Electrochemical Society 166.12 - (2019): A2383. - - The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data - are extracted from - - > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and - surface cooling on lithium ion cell performance."" Journal of The Electrochemical - Society, 165.13 (2018): A3169-A3178. - # Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the papers: - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery I. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The fits to data for the electrode and electrolyte properties are those provided - by Dr. Simon O’Kane in the paper: - - > Richardson, Giles, et. al. "Generalised single particle models for high-rate - operation of graded lithium-ion electrodes: Systematic derivation and validation." - Electrochemica Acta 339 (2020): 135862 - - The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data - are extracted from - - > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and - surface cooling on lithium ion cell performance."" Journal of The Electrochemical - Society, 165.13 (2018): A3169-A3178. - # Separator parameters - - Parameters for the separator from the papers - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery i. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data - are extracted from - - > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and - surface cooling on lithium ion cell performance."" Journal of The Electrochemical - Society, 165.13 (2018): A3169-A3178. - # Lithium Nickel Cobalt Oxide positive electrode parameters - - Parameters for a Lithium Nickel Cobalt Oxide positive electrode, from the papers - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery i. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The fits to data for the electrode and electrolyte properties are those provided - by Dr. Simon O’Kane in the paper: - - > Richardson, Giles, et. al. "Generalised single particle models for high-rate - operation of graded lithium-ion electrodes: Systematic derivation and validation." - Electrochemica Acta 339 (2020): 135862 - - The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data - are extracted from - - > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and - surface cooling on lithium ion cell performance."" Journal of The Electrochemical - Society, 165.13 (2018): A3169-A3178. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the papers - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery i. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The fits to data for the electrode and electrolyte properties are those provided - by Dr. Simon O’Kane in the paper: - - > Richardson, Giles, et. al. "Generalised single particle models for high-rate - operation of graded lithium-ion electrodes: Systematic derivation and validation." - Electrochemica Acta 339 (2020): 135862 - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857.. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + (2019): A2383. + + The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data + are extracted from + + > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and + surface cooling on lithium ion cell performance."" Journal of The Electrochemical + Society, 165.13 (2018): A3169-A3178. + # Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the papers: + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery I. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The fits to data for the electrode and electrolyte properties are those provided + by Dr. Simon O’Kane in the paper: + + > Richardson, Giles, et. al. "Generalised single particle models for high-rate + operation of graded lithium-ion electrodes: Systematic derivation and validation." + Electrochemica Acta 339 (2020): 135862 + + The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data + are extracted from + + > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and + surface cooling on lithium ion cell performance."" Journal of The Electrochemical + Society, 165.13 (2018): A3169-A3178. + # Separator parameters + + Parameters for the separator from the papers + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery i. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data + are extracted from + + > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and + surface cooling on lithium ion cell performance."" Journal of The Electrochemical + Society, 165.13 (2018): A3169-A3178. + # Lithium Nickel Cobalt Oxide positive electrode parameters + + Parameters for a Lithium Nickel Cobalt Oxide positive electrode, from the papers + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery i. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The fits to data for the electrode and electrolyte properties are those provided + by Dr. Simon O’Kane in the paper: + + > Richardson, Giles, et. al. "Generalised single particle models for high-rate + operation of graded lithium-ion electrodes: Systematic derivation and validation." + Electrochemica Acta 339 (2020): 135862 + + The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data + are extracted from + + > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and + surface cooling on lithium ion cell performance."" Journal of The Electrochemical + Society, 165.13 (2018): A3169-A3178. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the papers + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery i. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The fits to data for the electrode and electrolyte properties are those provided + by Dr. Simon O’Kane in the paper: + + > Richardson, Giles, et. al. "Generalised single particle models for high-rate + operation of graded lithium-ion electrodes: Systematic derivation and validation." + Electrochemica Acta 339 (2020): 135862 + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857.. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. """ return { @@ -607,15 +559,9 @@ def get_parameter_values(): # negative electrode "Negative electrode conductivity [S.m-1]": 14.0, "Maximum concentration in negative electrode [mol.m-3]": 31920.0, - "Measured negative electrode diffusivity [m2.s-1]": ( - "measured_graphite_diffusivity_Ecker2015", - measured_graphite_diffusivity_Ecker2015, - ), + "Measured negative electrode diffusivity [m2.s-1]": '[data]measured_graphite_diffusivity_Ecker2015', "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_Ecker2015, - "Measured negative electrode OCP [V]": ( - "graphite_ocp_Ecker2015", - graphite_ocp_Ecker2015, - ), + "Measured negative electrode OCP [V]": '[data]graphite_ocp_Ecker2015', "Negative electrode OCP [V]": graphite_ocp_Ecker2015_function, "Negative electrode porosity": 0.329, "Negative electrode active material volume fraction": 0.372403, @@ -632,12 +578,9 @@ def get_parameter_values(): # positive electrode "Positive electrode conductivity [S.m-1]": 68.1, "Maximum concentration in positive electrode [mol.m-3]": 48580.0, - "Measured positive electrode diffusivity [m2.s-1]": ( - "measured_nco_diffusivity_Ecker2015", - measured_nco_diffusivity_Ecker2015, - ), + "Measured positive electrode diffusivity [m2.s-1]": '[data]measured_nco_diffusivity_Ecker2015', "Positive electrode diffusivity [m2.s-1]": nco_diffusivity_Ecker2015, - "Measured positive electrode OCP [V]": ("nco_ocp_Ecker2015", nco_ocp_Ecker2015), + "Measured positive electrode OCP [V]": '[data]nco_ocp_Ecker2015', "Positive electrode OCP [V]": nco_ocp_Ecker2015_function, "Positive electrode porosity": 0.296, "Positive electrode active material volume fraction": 0.40832, @@ -681,11 +624,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 12630.8, "Initial temperature [K]": 298.15, # citations - "citations": [ - "Ecker2015i", - "Ecker2015ii", - "Zhao2018", - "Hales2019", - "Richardson2020", - ], - } + 'citations': ['Ecker2015i', 'Ecker2015ii', 'Zhao2018', 'Hales2019', 'Richardson2020'], + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Marquis2019.py b/pybamm/input/parameters/lithium_ion/Marquis2019.py index de6378bb1f..4c75547002 100644 --- a/pybamm/input/parameters/lithium_ion/Marquis2019.py +++ b/pybamm/input/parameters/lithium_ion/Marquis2019.py @@ -29,7 +29,6 @@ def graphite_mcmb2528_diffusivity_Dualfoil1998(sto, T): return D_ref * arrhenius - def graphite_mcmb2528_ocp_Dualfoil1998(sto): """ Graphite MCMB 2528 Open Circuit Potential (OCP) as a function of the @@ -57,7 +56,6 @@ def graphite_mcmb2528_ocp_Dualfoil1998(sto): return u_eq - def graphite_electrolyte_exchange_current_density_Dualfoil1998( c_e, c_s_surf, c_s_max, T ): @@ -93,7 +91,6 @@ def graphite_electrolyte_exchange_current_density_Dualfoil1998( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def graphite_entropic_change_Moura2016(sto, c_s_max): """ Graphite entropic change in open circuit potential (OCP) at a temperature of @@ -124,7 +121,6 @@ def graphite_entropic_change_Moura2016(sto, c_s_max): return du_dT - def lico2_diffusivity_Dualfoil1998(sto, T): """ LiCo2 diffusivity as a function of stochiometry, in this case the @@ -152,7 +148,6 @@ def lico2_diffusivity_Dualfoil1998(sto, T): return D_ref * arrhenius - def lico2_ocp_Dualfoil1998(sto): """ Lithium Cobalt Oxide (LiCO2) Open Circuit Potential (OCP) as a a function of the @@ -190,7 +185,6 @@ def lico2_ocp_Dualfoil1998(sto): return u_eq - def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between lico2 and LiPF6 in @@ -224,7 +218,6 @@ def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def lico2_entropic_change_Moura2016(sto, c_s_max): """ Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at @@ -246,22 +239,16 @@ def lico2_entropic_change_Moura2016(sto, c_s_max): sto = stretch * sto du_dT = ( - 0.07645 - * (-54.4806 / c_s_max) - * ((1.0 / pybamm.cosh(30.834 - 54.4806 * sto)) ** 2) + 0.07645 * (-54.4806 / c_s_max) * ((1.0 / pybamm.cosh(30.834 - 54.4806 * sto)) ** 2) + 2.1581 * (-50.294 / c_s_max) * ((pybamm.cosh(52.294 - 50.294 * sto)) ** (-2)) - + 0.14169 - * (19.854 / c_s_max) - * ((pybamm.cosh(11.0923 - 19.8543 * sto)) ** (-2)) + + 0.14169 * (19.854 / c_s_max) * ((pybamm.cosh(11.0923 - 19.8543 * sto)) ** (-2)) - 0.2051 * (5.4888 / c_s_max) * ((pybamm.cosh(1.4684 - 5.4888 * sto)) ** (-2)) - - (0.2531 / 0.1316 / c_s_max) - * ((pybamm.cosh((-sto + 0.56478) / 0.1316)) ** (-2)) + - (0.2531 / 0.1316 / c_s_max) * ((pybamm.cosh((-sto + 0.56478) / 0.1316)) ** (-2)) - (0.02167 / 0.006 / c_s_max) * ((pybamm.cosh((sto - 0.525) / 0.006)) ** (-2)) ) return du_dT - def electrolyte_diffusivity_Capiglia1999(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. The original data @@ -294,7 +281,6 @@ def electrolyte_diffusivity_Capiglia1999(c_e, T): return D_c_e * arrhenius - def electrolyte_conductivity_Capiglia1999(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration. The original @@ -338,90 +324,90 @@ def electrolyte_conductivity_Capiglia1999(c_e, T): def get_parameter_values(): """ # Marquis2019 parameter set - # Kokam SLPB78205130H cell parameters - - Parameters for a Kokam SLPB78205130H cell, from the paper - + # Kokam SLPB78205130H cell parameters + + Parameters for a Kokam SLPB78205130H cell, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # Graphite MCMB 2528 negative electrode parameters - - Parameters for a graphite MCMB 2528 negative electrode, from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # Graphite MCMB 2528 negative electrode parameters + + Parameters for a graphite MCMB 2528 negative electrode, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # Separator parameters - - Parameters for the separator in the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # Separator parameters + + Parameters for the separator in the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # Lithium Cobalt Oxide positive electrode parameters - - Parameters for a lithium Cobalt Oxide positive electrode, from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # Lithium Cobalt Oxide positive electrode parameters + + Parameters for a lithium Cobalt Oxide positive electrode, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. """ return { @@ -543,5 +529,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 30730.7554385565, "Initial temperature [K]": 298.15, # citations - "citations": ["Marquis2019"], - } + 'citations': ['Marquis2019'], + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Mohtat2020.py b/pybamm/input/parameters/lithium_ion/Mohtat2020.py index 54916c2e99..1f86b393df 100644 --- a/pybamm/input/parameters/lithium_ion/Mohtat2020.py +++ b/pybamm/input/parameters/lithium_ion/Mohtat2020.py @@ -29,7 +29,6 @@ def graphite_diffusivity_PeymanMPM(sto, T): return D_ref * arrhenius - def graphite_ocp_PeymanMPM(sto): """ Graphite Open Circuit Potential (OCP) as a function of the @@ -42,18 +41,17 @@ def graphite_ocp_PeymanMPM(sto): u_eq = ( 0.063 - + 0.8 * pybamm.pybamm.exp(-75 * (sto + 0.001)) - - 0.0120 * pybamm.pybamm.tanh((sto - 0.127) / 0.016) - - 0.0118 * pybamm.pybamm.tanh((sto - 0.155) / 0.016) - - 0.0035 * pybamm.pybamm.tanh((sto - 0.220) / 0.020) - - 0.0095 * pybamm.pybamm.tanh((sto - 0.190) / 0.013) - - 0.0145 * pybamm.pybamm.tanh((sto - 0.490) / 0.020) - - 0.0800 * pybamm.pybamm.tanh((sto - 1.030) / 0.055) + + 0.8 * pybamm.exp(-75 * (sto + 0.001)) + - 0.0120 * pybamm.tanh((sto - 0.127) / 0.016) + - 0.0118 * pybamm.tanh((sto - 0.155) / 0.016) + - 0.0035 * pybamm.tanh((sto - 0.220) / 0.020) + - 0.0095 * pybamm.tanh((sto - 0.190) / 0.013) + - 0.0145 * pybamm.tanh((sto - 0.490) / 0.020) + - 0.0800 * pybamm.tanh((sto - 1.030) / 0.055) ) return u_eq - def graphite_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in @@ -89,7 +87,6 @@ def graphite_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def graphite_entropic_change_PeymanMPM(sto, c_s_max): """ Graphite entropic change in open circuit potential (OCP) at a temperature of @@ -119,7 +116,6 @@ def graphite_entropic_change_PeymanMPM(sto, c_s_max): return du_dT - def NMC_diffusivity_PeymanMPM(sto, T): """ NMC diffusivity as a function of stochiometry, in this case the @@ -148,7 +144,6 @@ def NMC_diffusivity_PeymanMPM(sto, T): return D_ref * arrhenius - def NMC_ocp_PeymanMPM(sto): """ Nickel Managanese Cobalt Oxide (NMC) Open Circuit Potential (OCP) as a @@ -172,12 +167,11 @@ def NMC_ocp_PeymanMPM(sto): - 2.0843 * (sto**3) + 3.5146 * (sto**4) - 2.2166 * (sto**5) - - 0.5623e-4 * pybamm.pybamm.exp(109.451 * sto - 100.006) + - 0.5623e-4 * pybamm.exp(109.451 * sto - 100.006) ) return u_eq - def NMC_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -211,7 +205,6 @@ def NMC_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_max, T m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def NMC_entropic_change_PeymanMPM(sto, c_s_max): """ Nickel Manganese Cobalt (NMC) entropic change in open circuit potential (OCP) at @@ -240,7 +233,7 @@ def NMC_entropic_change_PeymanMPM(sto, c_s_max): + 1.6225 * sto**2 - 2.0843 * sto**3 + 3.5146 * sto**4 - - 0.5623 * 10 ** (-4) * pybamm.pybamm.exp(109.451 * sto - 100.006) + - 0.5623 * 10 ** (-4) * pybamm.exp(109.451 * sto - 100.006) ) du_dT = ( @@ -249,7 +242,6 @@ def NMC_entropic_change_PeymanMPM(sto, c_s_max): return du_dT - def electrolyte_diffusivity_PeymanMPM(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. The original data @@ -282,7 +274,6 @@ def electrolyte_diffusivity_PeymanMPM(c_e, T): return D_c_e * arrhenius - def electrolyte_conductivity_PeymanMPM(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration. The original @@ -319,36 +310,36 @@ def electrolyte_conductivity_PeymanMPM(c_e, T): def get_parameter_values(): """ # Mohtat2020 parameter set - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. - # SEI parameters - - Parameters for lithium plating from the paper: - - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. + # SEI parameters + + Parameters for lithium plating from the paper: + + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. """ return { @@ -477,5 +468,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 31513.0, "Initial temperature [K]": 298.15, # citations - "citations": ["Mohtat2020"], - } + 'citations': ['Mohtat2020'], + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py b/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py index b5bdf7e782..27695c6b45 100644 --- a/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py +++ b/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py @@ -1,5 +1,4 @@ import pybamm -import pandas as pd def graphite_diffusivity_Kim2011(sto, T): @@ -32,7 +31,6 @@ def graphite_diffusivity_Kim2011(sto, T): return D_ref * arrhenius - def graphite_ocp_Kim2011(sto): """ Graphite Open Circuit Potential (OCP) as a function of the stochiometry [1]. @@ -60,7 +58,6 @@ def graphite_ocp_Kim2011(sto): return u_eq - def graphite_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in @@ -112,7 +109,6 @@ def graphite_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max * (c_s_max - c_s_surf) ** alpha ) - def nca_diffusivity_Kim2011(sto, T): """ NCA diffusivity as a function of stochiometry [1]. @@ -142,7 +138,6 @@ def nca_diffusivity_Kim2011(sto, T): return D_ref * arrhenius - def nca_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NCA and LiPF6 in EC:DMC @@ -191,7 +186,6 @@ def nca_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max, T): * (c_s_max - c_s_surf) ** alpha ) - def electrolyte_diffusivity_Kim2011(c_e, T): """ Diffusivity of LiPF6 in EC as a function of ion concentration from [1]. @@ -225,7 +219,6 @@ def electrolyte_diffusivity_Kim2011(c_e, T): return D_c_e - def electrolyte_conductivity_Kim2011(c_e, T): """ Conductivity of LiPF6 in EC as a function of ion concentration from [1]. @@ -260,114 +253,109 @@ def electrolyte_conductivity_Kim2011(c_e, T): return sigma_e -nca_ocp_Kim2011_data_filename = pybamm.get_parameters_filepath( - "pybamm/input/parameters/lithium_ion/nca_ocp_Kim2011_data.csv" -) -nca_ocp_Kim2011_data = pd.read_csv(nca_ocp_Kim2011_data_filename, comment="#") - # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ # NCA_Kim2011 parameter set - # Pouch cell parameters - - Parameters for a "Nominal Design" pouch cell, from the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - # Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - - Note, only an effective cell volumetric heat capacity is provided in the paper. We + # Pouch cell parameters + + Parameters for a "Nominal Design" pouch cell, from the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + # Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + + Note, only an effective cell volumetric heat capacity is provided in the paper. We therefore used the values for the density and specific heat capacity reported in the - Marquis2019 parameter set in each region and multiplied each density by the ratio - of the volumetric heat capacity provided in smith to the calculated value. This - ensures that the values produce the same effective cell volumetric heat capacity. - This works fine for thermal models that are averaged over the x-direction but not - for full (PDE in x direction) thermal models. We do the same for the planar - effective thermal conductivity. - # Separator parameters - - Parameters for the separator in the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - - and references therein. - - Note, only an effective cell volumetric heat capacity is provided in the paper. We + Marquis2019 parameter set in each region and multiplied each density by the ratio + of the volumetric heat capacity provided in smith to the calculated value. This + ensures that the values produce the same effective cell volumetric heat capacity. + This works fine for thermal models that are averaged over the x-direction but not + for full (PDE in x direction) thermal models. We do the same for the planar + effective thermal conductivity. + # Separator parameters + + Parameters for the separator in the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + + and references therein. + + Note, only an effective cell volumetric heat capacity is provided in the paper. We therefore used the values for the density and specific heat capacity reported in the - Marquis2019 parameter set in each region and multiplied each density by the ratio - of the volumetric heat capacity provided in smith to the calculated value. This - ensures that the values produce the same effective cell volumetric heat capacity. - This works fine for thermal models that are averaged over the x-direction but not - for full (PDE in x direction) thermal models. We do the same for the planar - effective thermal conductivity. - # Nickel Cobalt Aluminium (NCA) positive electrode parameters - - Parameters for an NCA positive electrode, from the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - - Note, only an effective cell volumetric heat capacity is provided in the paper. We + Marquis2019 parameter set in each region and multiplied each density by the ratio + of the volumetric heat capacity provided in smith to the calculated value. This + ensures that the values produce the same effective cell volumetric heat capacity. + This works fine for thermal models that are averaged over the x-direction but not + for full (PDE in x direction) thermal models. We do the same for the planar + effective thermal conductivity. + # Nickel Cobalt Aluminium (NCA) positive electrode parameters + + Parameters for an NCA positive electrode, from the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + + Note, only an effective cell volumetric heat capacity is provided in the paper. We therefore used the values for the density and specific heat capacity reported in the - Marquis2019 parameter set in each region and multiplied each density by the ratio - of the volumetric heat capacity provided in smith to the calculated value. This - ensures that the values produce the same effective cell volumetric heat capacity. - This works fine for thermal models that are averaged over the x-direction but not - for full (PDE in x direction) thermal models. We do the same for the planar - effective thermal conductivity. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - - and references therein. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + Marquis2019 parameter set in each region and multiplied each density by the ratio + of the volumetric heat capacity provided in smith to the calculated value. This + ensures that the values produce the same effective cell volumetric heat capacity. + This works fine for thermal models that are averaged over the x-direction but not + for full (PDE in x direction) thermal models. We do the same for the planar + effective thermal conductivity. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. """ return { @@ -444,7 +432,7 @@ def get_parameter_values(): "Positive electrode conductivity [S.m-1]": 10.0, "Maximum concentration in positive electrode [mol.m-3]": 49000.0, "Positive electrode diffusivity [m2.s-1]": nca_diffusivity_Kim2011, - "Positive electrode OCP [V]": ("nca_ocp_Kim2011_data", nca_ocp_Kim2011_data), + "Positive electrode OCP [V]": '[data]nca_ocp_Kim2011_data', "Positive electrode porosity": 0.4, "Positive electrode active material volume fraction": 0.41, "Positive particle radius [m]": 1.633e-06, @@ -489,5 +477,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 20090.0, "Initial temperature [K]": 298.15, # citations - "citations": ["Kim2011"], - } + 'citations': ['Kim2011'], + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/OKane2022.py b/pybamm/input/parameters/lithium_ion/OKane2022.py index b189aad745..ff13e398e5 100644 --- a/pybamm/input/parameters/lithium_ion/OKane2022.py +++ b/pybamm/input/parameters/lithium_ion/OKane2022.py @@ -1,5 +1,4 @@ import pybamm -import pandas as pd def plating_exchange_current_density_OKane2020(c_e, c_Li, T): @@ -29,7 +28,6 @@ def plating_exchange_current_density_OKane2020(c_e, c_Li, T): return pybamm.constants.F * k_plating * c_e - def stripping_exchange_current_density_OKane2020(c_e, c_Li, T): """ Exchange-current density for Li stripping reaction [A.m-2]. @@ -63,7 +61,6 @@ def stripping_exchange_current_density_OKane2020(c_e, c_Li, T): return pybamm.constants.F * k_plating * c_Li - def SEI_limited_dead_lithium_OKane2022(L_sei): """ Decay rate for dead lithium formation [s-1]. @@ -92,7 +89,6 @@ def SEI_limited_dead_lithium_OKane2022(L_sei): return gamma - def graphite_LGM50_diffusivity_Chen2020(sto, T): """ LG M50 Graphite diffusivity as a function of stochiometry, in this case the @@ -125,7 +121,6 @@ def graphite_LGM50_diffusivity_Chen2020(sto, T): return D_ref * arrhenius - def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( c_e, c_s_surf, c_s_max, T ): @@ -165,7 +160,6 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def graphite_volume_change_Ai2020(sto, c_s_max): """ Graphite particle volume change as a function of stochiometry [1, 2]. @@ -214,7 +208,6 @@ def graphite_volume_change_Ai2020(sto, c_s_max): ) return t_change - def graphite_cracking_rate_Ai2020(T_dim): """ Graphite particle cracking rate as a function of temperature [1, 2]. @@ -245,7 +238,6 @@ def graphite_cracking_rate_Ai2020(T_dim): arrhenius = pybamm.exp(Eac_cr / pybamm.constants.R * (1 / T_dim - 1 / 298.15)) return k_cr * arrhenius - def nmc_LGM50_diffusivity_Chen2020(sto, T): """ NMC diffusivity as a function of stoichiometry, in this case the @@ -277,7 +269,6 @@ def nmc_LGM50_diffusivity_Chen2020(sto, T): return D_ref * arrhenius - def nmc_LGM50_ocp_Chen2020(sto): """ LG M50 NMC open circuit potential as a function of stochiometry, fit taken @@ -311,7 +302,6 @@ def nmc_LGM50_ocp_Chen2020(sto): return u_eq - def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -346,7 +336,6 @@ def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def volume_change_Ai2020(sto, c_s_max): """ Particle volume change as a function of stochiometry [1, 2]. @@ -375,7 +364,6 @@ def volume_change_Ai2020(sto, c_s_max): t_change = omega * c_s_max * sto return t_change - def cracking_rate_Ai2020(T_dim): """ Particle cracking rate as a function of temperature [1, 2]. @@ -406,7 +394,6 @@ def cracking_rate_Ai2020(T_dim): arrhenius = pybamm.exp(Eac_cr / pybamm.constants.R * (1 / T_dim - 1 / 298.15)) return k_cr * arrhenius - def electrolyte_diffusivity_Nyman2008_arrhenius(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -444,7 +431,6 @@ def electrolyte_diffusivity_Nyman2008_arrhenius(c_e, T): return D_c_e * arrhenius - def electrolyte_conductivity_Nyman2008_arrhenius(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -485,114 +471,107 @@ def electrolyte_conductivity_Nyman2008_arrhenius(c_e, T): return sigma_e * arrhenius -graphite_LGM50_ocp_Chen2020_filename = pybamm.get_parameters_filepath( - "pybamm/input/parameters/lithium_ion/graphite_LGM50_ocp_Chen2020.csv" -) -graphite_LGM50_ocp_Chen2020 = pd.read_csv( - graphite_LGM50_ocp_Chen2020_filename, comment="#" -) - # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ # OKane2022 parameter set - # LG M50 cell parameters - - Parameters for an LG M50 cell, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # LG M50 Graphite anode parameters - - Parameters for an LG M50 graphite negative electrode, from the paper - - > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, - Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. - ["Lithium-ion battery degradation: how to model - it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical - Chemistry: Chemical Physics 24 (2022): 7909-7922 - - and references therein. - # Separator parameters - - Parameters for an LG M50 separator, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # NMC 811 positive electrode parameters - - Parameters for an LG M50 NMC 811 positive electrode, from the paper - - > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, - Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. - ["Lithium-ion battery degradation: how to model - it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical - Chemistry: Chemical Physics 24 (2022): 7909-7922 - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, - Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. - ["Lithium-ion battery degradation: how to model - it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical - Chemistry: Chemical Physics 24 (2022): 7909-7922 - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # SEI parameters - - Parameters for SEI growth from the paper - - > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, - Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. - ["Lithium-ion battery degradation: how to model - it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical - Chemistry: Chemical Physics 24 (2022): 7909-7922 - - and references therein. - - Note: this parameter set does not claim to be representative of the true parameter - values. These are merely the parameter values that were used in the referenced - papers. - # Lithium plating parameters - - Some example parameters for lithium plating from the paper: - - > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, - Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. - ["Lithium-ion battery degradation: how to model - it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical - Chemistry: Chemical Physics 24 (2022): 7909-7922 - - and references therein. - - Note: this parameter set does not claim to be representative of the true parameter - values. These are merely the parameter values that were used in the referenced - papers. + # LG M50 cell parameters + + Parameters for an LG M50 cell, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # LG M50 Graphite anode parameters + + Parameters for an LG M50 graphite negative electrode, from the paper + + > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, + Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. + ["Lithium-ion battery degradation: how to model + it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical + Chemistry: Chemical Physics 24 (2022): 7909-7922 + + and references therein. + # Separator parameters + + Parameters for an LG M50 separator, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # NMC 811 positive electrode parameters + + Parameters for an LG M50 NMC 811 positive electrode, from the paper + + > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, + Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. + ["Lithium-ion battery degradation: how to model + it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical + Chemistry: Chemical Physics 24 (2022): 7909-7922 + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, + Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. + ["Lithium-ion battery degradation: how to model + it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical + Chemistry: Chemical Physics 24 (2022): 7909-7922 + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # SEI parameters + + Parameters for SEI growth from the paper + + > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, + Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. + ["Lithium-ion battery degradation: how to model + it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical + Chemistry: Chemical Physics 24 (2022): 7909-7922 + + and references therein. + + Note: this parameter set does not claim to be representative of the true parameter + values. These are merely the parameter values that were used in the referenced + papers. + # Lithium plating parameters + + Some example parameters for lithium plating from the paper: + + > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, + Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. + ["Lithium-ion battery degradation: how to model + it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical + Chemistry: Chemical Physics 24 (2022): 7909-7922 + + and references therein. + + Note: this parameter set does not claim to be representative of the true parameter + values. These are merely the parameter values that were used in the referenced + papers. """ return { @@ -655,10 +634,7 @@ def get_parameter_values(): "Negative electrode conductivity [S.m-1]": 215.0, "Maximum concentration in negative electrode [mol.m-3]": 33133.0, "Negative electrode diffusivity [m2.s-1]": graphite_LGM50_diffusivity_Chen2020, - "Negative electrode OCP [V]": ( - "graphite_LGM50_ocp_Chen2020", - graphite_LGM50_ocp_Chen2020, - ), + "Negative electrode OCP [V]": '[data]graphite_LGM50_ocp_Chen2020', "Negative electrode porosity": 0.25, "Negative electrode active material volume fraction": 0.75, "Negative particle radius [m]": 5.86e-06, @@ -745,5 +721,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 17038.0, "Initial temperature [K]": 298.15, # citations - "citations": ["OKane2022", "Chen2020"], - } + 'citations': ['OKane2022', 'Chen2020'], + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/ORegan2022.py b/pybamm/input/parameters/lithium_ion/ORegan2022.py index 3c893c10b5..55d6a83119 100644 --- a/pybamm/input/parameters/lithium_ion/ORegan2022.py +++ b/pybamm/input/parameters/lithium_ion/ORegan2022.py @@ -1,4 +1,5 @@ import pybamm +import numpy as np def copper_heat_capacity_CRC(T): @@ -25,7 +26,6 @@ def copper_heat_capacity_CRC(T): return cp - def aluminium_heat_capacity_CRC(T): """ Aluminium specific heat capacity as a function of the temperature from [1]. @@ -50,7 +50,6 @@ def aluminium_heat_capacity_CRC(T): return cp - def copper_thermal_conductivity_CRC(T): """ Copper thermal conductivity as a function of the temperature from [1]. @@ -75,7 +74,6 @@ def copper_thermal_conductivity_CRC(T): return lambda_th - def graphite_LGM50_diffusivity_ORegan2022(sto, T): """ LG M50 Graphite diffusivity as a function of stochiometry, in this case the @@ -134,7 +132,6 @@ def graphite_LGM50_diffusivity_ORegan2022(sto, T): return D_ref * arrhenius - def graphite_LGM50_ocp_Chen2020(sto): """ LG M50 Graphite open-circuit potential as a function of stochiometry, fit taken @@ -168,7 +165,6 @@ def graphite_LGM50_ocp_Chen2020(sto): return U - def graphite_LGM50_electrolyte_exchange_current_density_ORegan2022( c_e, c_s_surf, c_s_max, T ): @@ -214,7 +210,6 @@ def graphite_LGM50_electrolyte_exchange_current_density_ORegan2022( * (1 - c_s_surf / c_s_max) ** (1 - alpha) ) - def graphite_LGM50_heat_capacity_ORegan2022(T): """ Wet negative electrode specific heat capacity as a function of the temperature from @@ -256,7 +251,6 @@ def graphite_LGM50_heat_capacity_ORegan2022(T): return cp_wet - def graphite_LGM50_thermal_conductivity_ORegan2022(T): """ Wet negative electrode thermal conductivity as a function of the temperature from @@ -283,7 +277,6 @@ def graphite_LGM50_thermal_conductivity_ORegan2022(T): return lambda_wet - def graphite_LGM50_entropic_change_ORegan2022(sto, c_s_max): """ LG M50 Graphite entropic change in open circuit potential (OCP) at a temperature of @@ -320,13 +313,11 @@ def graphite_LGM50_entropic_change_ORegan2022(sto, c_s_max): a0 * sto + c0 + a2 * pybamm.exp(-((sto - b2) ** 2) / c2) - + a1 - * (pybamm.tanh(d1 * (sto - (b1 - c1))) - pybamm.tanh(d1 * (sto - (b1 + c1)))) + + a1 * (pybamm.tanh(d1 * (sto - (b1 - c1))) - pybamm.tanh(d1 * (sto - (b1 + c1)))) ) / 1000 # fit in mV / K return dUdT - def nmc_LGM50_electronic_conductivity_ORegan2022(T): """ Positive electrode electronic conductivity as a function of the temperature from @@ -356,7 +347,6 @@ def nmc_LGM50_electronic_conductivity_ORegan2022(T): return sigma - def nmc_LGM50_diffusivity_ORegan2022(sto, T): """ NMC diffusivity as a function of stoichiometry, in this case the @@ -409,7 +399,6 @@ def nmc_LGM50_diffusivity_ORegan2022(sto, T): return D_ref * arrhenius - def nmc_LGM50_ocp_Chen2020(sto): """ LG M50 NMC open-circuit potential as a function of stoichiometry. The fit is @@ -443,7 +432,6 @@ def nmc_LGM50_ocp_Chen2020(sto): return U - def nmc_LGM50_electrolyte_exchange_current_density_ORegan2022( c_e, c_s_surf, c_s_max, T ): @@ -488,7 +476,6 @@ def nmc_LGM50_electrolyte_exchange_current_density_ORegan2022( * (1 - c_s_surf / c_s_max) ** (1 - alpha) ) - def nmc_LGM50_heat_capacity_ORegan2022(T): """ Wet positive electrode specific heat capacity as a function of the temperature from @@ -530,7 +517,6 @@ def nmc_LGM50_heat_capacity_ORegan2022(T): return cp_wet - def nmc_LGM50_thermal_conductivity_ORegan2022(T): """ Wet positive electrode thermal conductivity as a function of the temperature from @@ -557,7 +543,6 @@ def nmc_LGM50_thermal_conductivity_ORegan2022(T): return lambda_wet - def nmc_LGM50_entropic_change_ORegan2022(sto, c_s_max): """ LG M50 NMC 811 entropic change in open circuit potential (OCP) at a temperature of @@ -587,14 +572,12 @@ def nmc_LGM50_entropic_change_ORegan2022(sto, c_s_max): c2 = 0.02179 dUdT = ( - a1 * pybamm.exp(-((sto - b1) ** 2) / c1) - + a2 * pybamm.exp(-((sto - b2) ** 2) / c2) + a1 * pybamm.exp(-((sto - b1) ** 2) / c1) + a2 * pybamm.exp(-((sto - b2) ** 2) / c2) ) / 1000 # fit in mV / K return dUdT - def separator_LGM50_heat_capacity_ORegan2022(T): """ Wet separator specific heat capacity as a function of the temperature from [1]. @@ -635,7 +618,6 @@ def separator_LGM50_heat_capacity_ORegan2022(T): return cp_wet - def electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019(c_e, T): """ Transference number of LiPF6 in EC:EMC (3:7 w:w) as a function of ion @@ -675,7 +657,6 @@ def electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019(c_e, T): return electrolyte_transference_number_base_Landesfeind2019(c_e, T, coeffs) - def electrolyte_TDF_EC_EMC_3_7_Landesfeind2019(c_e, T): """ Thermodynamic factor (TDF) of LiPF6 in EC:EMC (3:7 w:w) as a function of ion @@ -705,7 +686,6 @@ def electrolyte_TDF_EC_EMC_3_7_Landesfeind2019(c_e, T): return electrolyte_TDF_base_Landesfeind2019(c_e, T, coeffs) - def electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7 w:w) as a function of ion concentration and @@ -733,7 +713,6 @@ def electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019(c_e, T): return electrolyte_diffusivity_base_Landesfeind2019(c_e, T, coeffs) - def electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7 w:w) as a function of ion concentration and @@ -766,65 +745,65 @@ def electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019(c_e, T): def get_parameter_values(): """ # ORegan2022 parameter set - # LG M50 cell parameters - - Parameters for an LG M50 cell, from the paper - - > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. - ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical - battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) - Electrochimica Acta 425 (2022): 140700 - - and references therein. - # LG M50 Graphite negative electrode parameters - - Parameters for a LG M50 graphite negative electrode, from the paper - - > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. - ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical - battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) - Electrochimica Acta 425 (2022): 140700 - - and references therein. - # Separator parameters - - Parameters for an LG M50 separator, from the paper - - > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. - ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical - battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) - Electrochimica Acta 425 (2022): 140700 - - and references therein. - # NMC 811 positive electrode parameters - - Parameters for an LG M50 NMC positive electrode, from the paper - - > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. - ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical - battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) - Electrochimica Acta 425 (2022): 140700 - - and references therein. - # LiPF6 in EC:EMC (3:7 w:w) electrolyte parameters - - Parameters for a LiPF6 in EC:EMC (3:7 w:w) electrolyte, from the paper - - > Johannes Landesfeind and Hubert A. Gasteiger, ["Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery - Electrolytes."](https://iopscience.iop.org/article/10.1149/2.0571912jes) Journal of - the Electrochemical Society 166 (2019): A3079. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. - ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical - battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) - Electrochimica Acta 425 (2022): 140700 - - and references therein. + # LG M50 cell parameters + + Parameters for an LG M50 cell, from the paper + + > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) + Electrochimica Acta 425 (2022): 140700 + + and references therein. + # LG M50 Graphite negative electrode parameters + + Parameters for a LG M50 graphite negative electrode, from the paper + + > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) + Electrochimica Acta 425 (2022): 140700 + + and references therein. + # Separator parameters + + Parameters for an LG M50 separator, from the paper + + > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) + Electrochimica Acta 425 (2022): 140700 + + and references therein. + # NMC 811 positive electrode parameters + + Parameters for an LG M50 NMC positive electrode, from the paper + + > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) + Electrochimica Acta 425 (2022): 140700 + + and references therein. + # LiPF6 in EC:EMC (3:7 w:w) electrolyte parameters + + Parameters for a LiPF6 in EC:EMC (3:7 w:w) electrolyte, from the paper + + > Johannes Landesfeind and Hubert A. Gasteiger, ["Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery + Electrolytes."](https://iopscience.iop.org/article/10.1149/2.0571912jes) Journal of + the Electrochemical Society 166 (2019): A3079. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) + Electrochimica Acta 425 (2022): 140700 + + and references therein. """ return { @@ -913,5 +892,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 13975.0, "Initial temperature [K]": 298.15, # citations - "citations": ["ORegan2022", "Chen2020"], - } + 'citations': ['ORegan2022', 'Chen2020'], + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Prada2013.py b/pybamm/input/parameters/lithium_ion/Prada2013.py index 524d5632f9..9c237ac9e0 100644 --- a/pybamm/input/parameters/lithium_ion/Prada2013.py +++ b/pybamm/input/parameters/lithium_ion/Prada2013.py @@ -34,7 +34,6 @@ def graphite_LGM50_ocp_Chen2020(sto): return u_eq - def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( c_e, c_s_surf, c_s_max, T ): @@ -73,7 +72,6 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def LFP_ocp_ashfar2017(sto): """ Open-circuit potential for LFP @@ -96,7 +94,6 @@ def LFP_ocp_ashfar2017(sto): return k - def LFP_electrolyte_exchange_current_density_kashkooli2017(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between LFP and electrolyte @@ -133,7 +130,6 @@ def LFP_electrolyte_exchange_current_density_kashkooli2017(c_e, c_s_surf, c_s_ma m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def electrolyte_diffusivity_Nyman2008(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -164,7 +160,6 @@ def electrolyte_diffusivity_Nyman2008(c_e, T): return D_c_e - def electrolyte_conductivity_Nyman2008(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -202,68 +197,68 @@ def electrolyte_conductivity_Nyman2008(c_e, T): def get_parameter_values(): """ # Prada2013 parameter set - # Pouch cell parameters - - Parameters for an A123 LFP cell, from the paper - - > Lain, M. J., Brandon, J., & Kendrick, E. (2019). Design Strategies for High Power - vs. High Energy Lithium Ion Cells. - [Batteries](https://doi.org/10.3390/batteries5040064), 5(4), 64. - # LG M50 Graphite negative electrode parameters - - Parameters for a LG M50 graphite negative electrode, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # Separator parameters - - Parameters for an LG M50 separator, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # Lithium Iron Phosphate positive electrode parameters - - Parameters for an LFP positive electrode, from the paper - + # Pouch cell parameters + + Parameters for an A123 LFP cell, from the paper + + > Lain, M. J., Brandon, J., & Kendrick, E. (2019). Design Strategies for High Power + vs. High Energy Lithium Ion Cells. + [Batteries](https://doi.org/10.3390/batteries5040064), 5(4), 64. + # LG M50 Graphite negative electrode parameters + + Parameters for a LG M50 graphite negative electrode, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # Separator parameters + + Parameters for an LG M50 separator, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # Lithium Iron Phosphate positive electrode parameters + + Parameters for an LFP positive electrode, from the paper + > Prada, E., Di Domenico, D., Creff, Y., Bernard, J., Sauvant-Moynot, V., & Huet, F. - (2013). A simplified electrochemical and thermal aging model of LiFePO4-graphite - Li-ion batteries: power and capacity fade simulations. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.053304jes), 160(4), A616. - - and references therein. The functions used for OCP and exchange-current density are + (2013). A simplified electrochemical and thermal aging model of LiFePO4-graphite + Li-ion batteries: power and capacity fade simulations. [Journal of The + Electrochemical Society](https://doi.org/10.1149/2.053304jes), 160(4), A616. + + and references therein. The functions used for OCP and exchange-current density are from separate references (documented within the functions), to provide better fit to - data - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and - modelling of the mass transport phenomena in LiPF6-EC-EMC - electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) - Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 4C, using the initial conditions - from the paper - + data + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and + modelling of the mass transport phenomena in LiPF6-EC-EMC + electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) + Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 4C, using the initial conditions + from the paper + > Prada, E., Di Domenico, D., Creff, Y., Bernard, J., Sauvant-Moynot, V., & Huet, F. - (2013). A simplified electrochemical and thermal aging model of LiFePO4-graphite - Li-ion batteries: power and capacity fade simulations. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.053304jes), 160(4), A616. - - and references therein. + (2013). A simplified electrochemical and thermal aging model of LiFePO4-graphite + Li-ion batteries: power and capacity fade simulations. [Journal of The + Electrochemical Society](https://doi.org/10.1149/2.053304jes), 160(4), A616. + + and references therein. """ return { @@ -355,5 +350,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 35.3766672, "Initial temperature [K]": 298.15, # citations - "citations": ["Chen2020", "Lain2019", "Prada2013"], - } + 'citations': ['Chen2020', 'Lain2019', 'Prada2013'], + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Ramadass2004.py b/pybamm/input/parameters/lithium_ion/Ramadass2004.py index 1eb3fbfaa0..f8c9cc6ef1 100644 --- a/pybamm/input/parameters/lithium_ion/Ramadass2004.py +++ b/pybamm/input/parameters/lithium_ion/Ramadass2004.py @@ -29,7 +29,6 @@ def graphite_mcmb2528_diffusivity_Dualfoil1998(sto, T): return D_ref * arrhenius - def graphite_ocp_Ramadass2004(sto): """ Graphite Open Circuit Potential (OCP) as a function of the @@ -54,7 +53,6 @@ def graphite_ocp_Ramadass2004(sto): return u_eq - def graphite_electrolyte_exchange_current_density_Ramadass2004( c_e, c_s_surf, c_s_max, T ): @@ -92,7 +90,6 @@ def graphite_electrolyte_exchange_current_density_Ramadass2004( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def graphite_entropic_change_Moura2016(sto, c_s_max): """ Graphite entropic change in open circuit potential (OCP) at a temperature of @@ -123,7 +120,6 @@ def graphite_entropic_change_Moura2016(sto, c_s_max): return du_dT - def lico2_diffusivity_Ramadass2004(sto, T): """ LiCo2 diffusivity as a function of stochiometry, in this case the @@ -153,7 +149,6 @@ def lico2_diffusivity_Ramadass2004(sto, T): return D_ref * arrhenius - def lico2_ocp_Ramadass2004(sto): """ Lithium Cobalt Oxide (LiCO2) Open Circuit Potential (OCP) as a a function of the @@ -194,7 +189,6 @@ def lico2_ocp_Ramadass2004(sto): return u_eq - def lico2_electrolyte_exchange_current_density_Ramadass2004(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between lico2 and LiPF6 in @@ -230,7 +224,6 @@ def lico2_electrolyte_exchange_current_density_Ramadass2004(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) - def lico2_entropic_change_Moura2016(sto, c_s_max): """ Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at @@ -252,22 +245,16 @@ def lico2_entropic_change_Moura2016(sto, c_s_max): sto = stretch * sto du_dT = ( - 0.07645 - * (-54.4806 / c_s_max) - * ((1.0 / pybamm.cosh(30.834 - 54.4806 * sto)) ** 2) + 0.07645 * (-54.4806 / c_s_max) * ((1.0 / pybamm.cosh(30.834 - 54.4806 * sto)) ** 2) + 2.1581 * (-50.294 / c_s_max) * ((pybamm.cosh(52.294 - 50.294 * sto)) ** (-2)) - + 0.14169 - * (19.854 / c_s_max) - * ((pybamm.cosh(11.0923 - 19.8543 * sto)) ** (-2)) + + 0.14169 * (19.854 / c_s_max) * ((pybamm.cosh(11.0923 - 19.8543 * sto)) ** (-2)) - 0.2051 * (5.4888 / c_s_max) * ((pybamm.cosh(1.4684 - 5.4888 * sto)) ** (-2)) - - (0.2531 / 0.1316 / c_s_max) - * ((pybamm.cosh((-sto + 0.56478) / 0.1316)) ** (-2)) + - (0.2531 / 0.1316 / c_s_max) * ((pybamm.cosh((-sto + 0.56478) / 0.1316)) ** (-2)) - (0.02167 / 0.006 / c_s_max) * ((pybamm.cosh((sto - 0.525) / 0.006)) ** (-2)) ) return du_dT - def electrolyte_diffusivity_Ramadass2004(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. @@ -298,7 +285,6 @@ def electrolyte_diffusivity_Ramadass2004(c_e, T): return D_c_e * arrhenius - def electrolyte_conductivity_Ramadass2004(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration. @@ -345,103 +331,103 @@ def electrolyte_conductivity_Ramadass2004(c_e, T): def get_parameter_values(): """ # Ramadass2004 parameter set - # Cell geometry parameters - - Parameters for a lithium Cobalt Oxide positive electrode, from the paper - + # Cell geometry parameters + + Parameters for a lithium Cobalt Oxide positive electrode, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. - Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." - (2004) - > P. Ramadass, Bala Haran, Ralph White, and Branko N. Popov. "Capacity fade of Sony - 18650 cells cycled at elevated temperatures part I." (2002) - - and references therein. - # Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. + Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." + (2004) + > P. Ramadass, Bala Haran, Ralph White, and Branko N. Popov. "Capacity fade of Sony + 18650 cells cycled at elevated temperatures part I." (2002) + + and references therein. + # Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. Popov.["Development of First Principles Capacity Fade Model for Li-Ion Cells."](http - s://scholarcommons.sc.edu/cgi/viewcontent.cgi?article=1161&context=eche_facpub) - (2004) - - and references therein. - # Separator parameters - - Parameters for the separator from the papers - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery i. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data - are extracted from - - > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and - surface cooling on lithium ion cell performance."" Journal of The Electrochemical - Society, 165.13 (2018): A3169-A3178. - # Lithium Cobalt Oxide positive electrode parameters - - Parameters for a lithium Cobalt Oxide positive electrode, from the paper - + s://scholarcommons.sc.edu/cgi/viewcontent.cgi?article=1161&context=eche_facpub) + (2004) + + and references therein. + # Separator parameters + + Parameters for the separator from the papers + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery i. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data + are extracted from + + > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and + surface cooling on lithium ion cell performance."" Journal of The Electrochemical + Society, 165.13 (2018): A3169-A3178. + # Lithium Cobalt Oxide positive electrode parameters + + Parameters for a lithium Cobalt Oxide positive electrode, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. - Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." - (2004) - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. + Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." + (2004) + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. - Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." - (2004) - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. + Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." + (2004) + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. + Electrochemical Society, 151(2), A196-A203. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + Note: Ramadass 2004 has mistakes in units and values of SEI parameters, corrected by - Safari 2009. + Safari 2009. """ return { @@ -558,5 +544,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 25777.5, "Initial temperature [K]": 298.15, # citations - "citations": ["Ramadass2004"], - } + 'citations': ['Ramadass2004'], + } \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Xu2019.py b/pybamm/input/parameters/lithium_ion/Xu2019.py index 02c2918b54..3cae4e4361 100644 --- a/pybamm/input/parameters/lithium_ion/Xu2019.py +++ b/pybamm/input/parameters/lithium_ion/Xu2019.py @@ -31,7 +31,6 @@ def li_metal_electrolyte_exchange_current_density_Xu2019(c_e, c_Li, T): return m_ref * c_Li**0.7 * c_e**0.3 - def nmc_ocp_Xu2019(sto): """ Nickel Managanese Cobalt Oxide (NMC) Open Circuit Potential (OCP) as a @@ -59,7 +58,7 @@ def nmc_ocp_Xu2019(sto): - 2.0843 * (sto**3) + 3.5146 * (sto**4) - 2.2166 * (sto**5) - - 0.5623e-4 * pybamm.pybamm.exp(109.451 * sto - 100.006) + - 0.5623e-4 * pybamm.exp(109.451 * sto - 100.006) ) # # only valid in range ~(0.25,0.95) @@ -74,12 +73,11 @@ def nmc_ocp_Xu2019(sto): # - 9578.599274 * sto ** 2 # + 1409.309503 * sto # - 85.31153081 - # - 0.0003 * pybamm.pybamm.exp(7.657 * sto ** 115) + # - 0.0003 * pybamm.exp(7.657 * sto ** 115) # ) return u_eq - def nmc_electrolyte_exchange_current_density_Xu2019(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -109,13 +107,10 @@ def nmc_electrolyte_exchange_current_density_Xu2019(c_e, c_s_surf, c_s_max, T): Exchange-current density [A.m-2] """ # assuming implicit correction of incorrect units from the paper - m_ref = ( - 5.76e-11 * pybamm.constants.F - ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = 5.76e-11 * pybamm.constants.F # (A/m2)(mol/m3)**1.5 - includes ref concentrations return m_ref * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 - def electrolyte_diffusivity_Valoen2005(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration, from [1] (eqn 14) @@ -149,7 +144,6 @@ def electrolyte_diffusivity_Valoen2005(c_e, T): # note, in the Valoen paper, ln means log10, so its inverse is 10^x return (10 ** (D_0 + D_1 * c_e)) * 1e-4 - def electrolyte_conductivity_Valoen2005(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration, from [1] @@ -191,87 +185,87 @@ def electrolyte_conductivity_Valoen2005(c_e, T): def get_parameter_values(): """ # Xu2019 parameter set - # Kokam SLPB78205130H cell parameters - - Parameters for a Kokam SLPB78205130H cell, from the paper - - > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + # Kokam SLPB78205130H cell parameters + + Parameters for a Kokam SLPB78205130H cell, from the paper + + > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - and references therein. - # Graphite MCMB 2528 anode parameters - - Parameters for a graphite MCMB 2528 anode, from the paper - - > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + and references therein. + # Graphite MCMB 2528 anode parameters + + Parameters for a graphite MCMB 2528 anode, from the paper + + > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - and references therein. - # Separator parameters - - Parameters for a Celgard 2325 separator, from the paper - - > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + and references therein. + # Separator parameters + + Parameters for a Celgard 2325 separator, from the paper + + > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - and references therein. - # Lithium Cobalt Oxide cathode parameters - - Parameters for a lithium Cobalt Oxide cathode, from the paper - - > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + and references therein. + # Lithium Cobalt Oxide cathode parameters + + Parameters for a lithium Cobalt Oxide cathode, from the paper + + > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > Valøen, Lars Ole, and Jan N. Reimers. "Transport properties of LiPF6-based Li-ion - battery electrolytes." Journal of The Electrochemical Society 152.5 (2005): - A882-A891. [doi: 10.1149/1.1872737](http://dx.doi.org/10.1149/1.1872737) - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > Valøen, Lars Ole, and Jan N. Reimers. "Transport properties of LiPF6-based Li-ion + battery electrolytes." Journal of The Electrochemical Society 152.5 (2005): + A882-A891. [doi: 10.1149/1.1872737](http://dx.doi.org/10.1149/1.1872737) + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - and references therein. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. """ return { @@ -355,5 +349,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 4631.0, "Initial temperature [K]": 298.15, # citations - "citations": ["Xu2019"], - } + 'citations': ['Xu2019'], + } \ No newline at end of file diff --git a/pybamm/parameters/parameter_values.py b/pybamm/parameters/parameter_values.py index 1a17da1767..4becd7e7b2 100644 --- a/pybamm/parameters/parameter_values.py +++ b/pybamm/parameters/parameter_values.py @@ -1001,13 +1001,13 @@ def export_python_script(self, name, path=None): if not filename.endswith(".py"): filename = filename + ".py" if path is not None: - filename = path + filename + filename = os.path.join(path, filename) + path = pybamm.get_parameters_filepath(path) filename = pybamm.get_parameters_filepath(filename) # Initialize preamble = "import pybamm\n" function_output = "" - data_output = "" dict_output = "" component_params_by_group = getattr( @@ -1038,18 +1038,8 @@ def export_python_script(self, name, path=None): data_file_new = path + f"{data_name}.csv" shutil.copyfile(data_file_old, data_file_new) - # add code to load data - data_output += ( - f"{data_name}_filename = pybamm.get_parameters_filepath" - f"('{path}{data_name}.csv')\n" - f"{data_name} = pd.read_csv" - f"({data_name}_filename, comment='#')\n" - ) - # replace data with data_name - v = f"('{data_name}', {data_name})" - if "import pandas as pd" not in preamble: - preamble += "import pandas as pd\n" - + # save data with data tag + v = f"'[data]{data_name}'" elif np.isnan(v): continue # skip this value @@ -1067,10 +1057,7 @@ def export_python_script(self, name, path=None): # construct the output string output = ( - preamble - + "\n\n" - + function_output - + data_output + function_output + "\n# Call dict via a function to avoid errors when editing in place" + "\ndef get_parameter_values():" + docstring @@ -1079,9 +1066,18 @@ def export_python_script(self, name, path=None): + "\n }" ) + # Add more packages to preamble if needed + if "pd." in output: + preamble += "import pandas as pd\n" + if "np." in output: + preamble += "import numpy as np\n" + output = preamble + "\n\n" + output + # Add pybamm. to functions that didn't have it in function body before - for funcname in ["Parameter", "exp", "tanh", "cosh"]: - output = output.replace(f"{funcname}(", f"pybamm.{funcname}(") + for funcname in ["Parameter", "exp", "tanh", "cosh", "log10"]: + # add space or ( before so it doesn't do this for middle-of-word matches + output = output.replace(f" {funcname}(", f" pybamm.{funcname}(") + output = output.replace(f"({funcname}(", f"(pybamm.{funcname}(") output = output.replace("constants", "pybamm.constants") # save to file diff --git a/tests/unit/test_parameters/test_parameter_values.py b/tests/unit/test_parameters/test_parameter_values.py index c701a3aef6..1dc50c9c50 100644 --- a/tests/unit/test_parameters/test_parameter_values.py +++ b/tests/unit/test_parameters/test_parameter_values.py @@ -609,17 +609,7 @@ def test_interpolant_against_function(self): ) def test_interpolant_2d_from_json(self): - - # pv = pybamm.ParameterValues({'interpolation': 0.0, 'function': 0.0}) - # - # pv['interpolation'] = \ - # '[2D data]../tests/unit/test_parameters/lico2_diffusivity_Dualfoil1998_2D' - # - # pv['function'] = '[function]' - - parameter_values = pybamm.ParameterValues( - chemistry=pybamm.parameter_sets.Ai2020 - ) + parameter_values = pybamm.ParameterValues("Ai2020") parameter_values.update( { "function": "[function]lico2_diffusivity_Dualfoil1998", @@ -1000,7 +990,7 @@ def some_function(self): def test_export_python_script(self): parameter_values = pybamm.ParameterValues(pybamm.parameter_sets.Ai2020) - path = "input/parameters/lithium_ion/" + path = os.path.join("input", "parameters", "lithium_ion") parameter_values.export_python_script("Ai2020_test", path=path) # test that loading the parameter set works From 2a75a8dc349b5e193ae476a9370c172f9bed0d76 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 4 Oct 2022 20:51:27 +0000 Subject: [PATCH 07/28] style: pre-commit fixes --- .../input/parameters/lead_acid/Sulzer2019.py | 104 +++--- pybamm/input/parameters/lithium_ion/Ai2020.py | 218 ++++++------ .../input/parameters/lithium_ion/Chen2020.py | 183 +++++----- .../lithium_ion/Chen2020_composite.py | 171 ++++----- .../input/parameters/lithium_ion/Ecker2015.py | 332 ++++++++++-------- .../parameters/lithium_ion/Marquis2019.py | 164 +++++---- .../parameters/lithium_ion/Mohtat2020.py | 69 ++-- .../parameters/lithium_ion/NCA_Kim2011.py | 200 ++++++----- .../input/parameters/lithium_ion/OKane2022.py | 213 +++++------ .../parameters/lithium_ion/ORegan2022.py | 148 ++++---- .../input/parameters/lithium_ion/Prada2013.py | 127 +++---- .../parameters/lithium_ion/Ramadass2004.py | 190 +++++----- pybamm/input/parameters/lithium_ion/Xu2019.py | 160 +++++---- 13 files changed, 1215 insertions(+), 1064 deletions(-) diff --git a/pybamm/input/parameters/lead_acid/Sulzer2019.py b/pybamm/input/parameters/lead_acid/Sulzer2019.py index c4ad3d6148..1d83fa4a28 100644 --- a/pybamm/input/parameters/lead_acid/Sulzer2019.py +++ b/pybamm/input/parameters/lead_acid/Sulzer2019.py @@ -20,6 +20,7 @@ def lead_ocp_Bode1977(m): ) return U + def lead_exchange_current_density_Sulzer2019(c_e, T): """ Dimensional exchange-current density in the negative (lead) electrode, from [1]_ @@ -51,6 +52,7 @@ def lead_exchange_current_density_Sulzer2019(c_e, T): return j0 + def lead_dioxide_ocp_Bode1977(m): """ Dimensional open-circuit voltage in the positive (lead-dioxide) electrode [V], @@ -70,6 +72,7 @@ def lead_dioxide_ocp_Bode1977(m): ) return U + def lead_dioxide_exchange_current_density_Sulzer2019(c_e, T): """ Dimensional exchange-current density in the positive electrode, from [1]_ @@ -107,6 +110,7 @@ def lead_dioxide_exchange_current_density_Sulzer2019(c_e, T): return j0 + def oxygen_exchange_current_density_Sulzer2019(c_e, T): """ Dimensional oxygen exchange-current density in the positive electrode, from [1]_ @@ -138,6 +142,7 @@ def oxygen_exchange_current_density_Sulzer2019(c_e, T): return j0 + def conductivity_Gu1997(c_e): """ Dimensional conductivity of sulfuric acid [S.m-1], from [1]_ citing [2]_ and @@ -159,6 +164,7 @@ def conductivity_Gu1997(c_e): """ return c_e * pybamm.exp(6.23 - 1.34e-4 * c_e - 1.61e-8 * c_e**2) * 1e-4 + def darken_thermodynamic_factor_Chapman1968(c_e): """ Dimensional Darken thermodynamic factor of sulfuric acid, from data in @@ -176,6 +182,7 @@ def darken_thermodynamic_factor_Chapman1968(c_e): """ return 0.49 + 4.1e-4 * c_e + def diffusivity_Gu1997(c_e): """ Dimensional Fickian diffusivity of sulfuric acid [m2.s-1], from [1]_ citing [2]_ @@ -197,6 +204,7 @@ def diffusivity_Gu1997(c_e): """ return (1.75 + 260e-6 * c_e) * 1e-9 + def viscosity_Chapman1968(c_e): """ Dimensional viscosity of sulfuric acid [kg.m-1.s-1], from data in [1]_, as a @@ -216,57 +224,57 @@ def viscosity_Chapman1968(c_e): def get_parameter_values(): """ # Sulzer2019 parameter set - # BBOXX cell parameters - - Cell-specific parameters for BBOXX lead-acid cells, from the paper - - > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster + # BBOXX cell parameters + + Cell-specific parameters for BBOXX lead-acid cells, from the paper + + > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - # Lead negative electrode parameters - - Parameters for a lead negative electrode, from the paper - - > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + # Lead negative electrode parameters + + Parameters for a lead negative electrode, from the paper + + > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - - and references therein. - # AGM separator parameters - - Parameters for an Absorbent Glass Mat (AGM) separator, from the paper - - > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + + and references therein. + # AGM separator parameters + + Parameters for an Absorbent Glass Mat (AGM) separator, from the paper + + > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - - and references therein. - # Lead-dioxide positive electrode parameters - - Parameters for a lead-dioxide positive electrode, from the paper - - > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + + and references therein. + # Lead-dioxide positive electrode parameters + + Parameters for a lead-dioxide positive electrode, from the paper + + > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - - and references therein. - # Sulfuric acid electrolyte parameters - - Parameters for a sulfuric acid electrolyte, from the paper - - > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + + and references therein. + # Sulfuric acid electrolyte parameters + + Parameters for a sulfuric acid electrolyte, from the paper + + > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - - and references therein. - # 1C discharge from full - - Discharge lead-acid battery from full charge at 1C. + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + + and references therein. + # 1C discharge from full + + Discharge lead-acid battery from full charge at 1C. """ return { @@ -406,5 +414,5 @@ def get_parameter_values(): "Initial oxygen concentration [mol.m-3]": 0.0, "Initial temperature [K]": 294.85, # citations - 'citations': ['Sulzer2019physical'], - } \ No newline at end of file + "citations": ["Sulzer2019physical"], + } diff --git a/pybamm/input/parameters/lithium_ion/Ai2020.py b/pybamm/input/parameters/lithium_ion/Ai2020.py index 86d8aeae53..ed6bc6de22 100644 --- a/pybamm/input/parameters/lithium_ion/Ai2020.py +++ b/pybamm/input/parameters/lithium_ion/Ai2020.py @@ -33,6 +33,7 @@ def graphite_diffusivity_Dualfoil1998(sto, T): arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / T_ref - 1 / T)) return D_ref * arrhenius + def graphite_electrolyte_exchange_current_density_Dualfoil1998( c_e, c_s_surf, c_s_max, T ): @@ -70,6 +71,7 @@ def graphite_electrolyte_exchange_current_density_Dualfoil1998( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def graphite_entropy_Enertech_Ai2020_function(sto, c_s_max): """ Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at @@ -122,6 +124,7 @@ def graphite_entropy_Enertech_Ai2020_function(sto, c_s_max): return du_dT + def graphite_volume_change_Ai2020(sto, c_s_max): """ Graphite particle volume change as a function of stochiometry [1, 2]. @@ -173,6 +176,7 @@ def graphite_volume_change_Ai2020(sto, c_s_max): ) return t_change + def graphite_cracking_rate_Ai2020(T_dim): """ graphite particle cracking rate as a function of temperature [1, 2]. @@ -206,6 +210,7 @@ def graphite_cracking_rate_Ai2020(T_dim): arrhenius = pybamm.exp(Eac_cr / pybamm.constants.R * (1 / T_dim - 1 / T_ref)) return k_cr * arrhenius + def lico2_diffusivity_Dualfoil1998(sto, T): """ LiCo2 diffusivity as a function of stochiometry, in this case the @@ -233,6 +238,7 @@ def lico2_diffusivity_Dualfoil1998(sto, T): arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / T_ref - 1 / T)) return D_ref * arrhenius + def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between lico2 and LiPF6 in @@ -267,6 +273,7 @@ def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def lico2_entropic_change_Ai2020_function(sto, c_s_max): """ Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at @@ -316,6 +323,7 @@ def lico2_entropic_change_Ai2020_function(sto, c_s_max): return du_dT + def lico2_volume_change_Ai2020(sto, c_s_max): """ lico2 particle volume change as a function of stochiometry [1, 2]. @@ -347,6 +355,7 @@ def lico2_volume_change_Ai2020(sto, c_s_max): t_change = omega * c_s_max * sto return t_change + def lico2_cracking_rate_Ai2020(T_dim): """ lico2 particle cracking rate as a function of temperature [1, 2]. @@ -380,6 +389,7 @@ def lico2_cracking_rate_Ai2020(T_dim): arrhenius = pybamm.exp(Eac_cr / pybamm.constants.R * (1 / T_dim - 1 / T_ref)) return k_cr * arrhenius + def dlnf_dlnc_Ai2020(c_e, T, T_ref=298.3, t_plus=0.38): """ Activity dependence of LiPF6 in EC:DMC as a function of ion concentration. @@ -412,6 +422,7 @@ def dlnf_dlnc_Ai2020(c_e, T, T_ref=298.3, t_plus=0.38): ) / (1 - t_plus) return dlnf_dlnc + def electrolyte_diffusivity_Ai2020(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. @@ -441,6 +452,7 @@ def electrolyte_diffusivity_Ai2020(c_e, T): return D_c_e + def electrolyte_conductivity_Ai2020(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration. @@ -487,107 +499,107 @@ def electrolyte_conductivity_Ai2020(c_e, T): def get_parameter_values(): """ # Ai2020 parameter set - # Enertech cell parameters - - Parameters for the Enertech cell, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # Enertech Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # Enertech Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # Lithium Cobalt Oxide positive electrode parameters - - Parameters for a lithium Cobalt Oxide positive electrode, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # Enertech Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + # Enertech cell parameters + + Parameters for the Enertech cell, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # Enertech Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # Enertech Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # Lithium Cobalt Oxide positive electrode parameters + + Parameters for a lithium Cobalt Oxide positive electrode, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # Enertech Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. """ return { @@ -641,7 +653,7 @@ def get_parameter_values(): "Negative electrode conductivity [S.m-1]": 100.0, "Maximum concentration in negative electrode [mol.m-3]": 28700.0, "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_Dualfoil1998, - "Negative electrode OCP [V]": '[data]graphite_ocp_Enertech_Ai2020', + "Negative electrode OCP [V]": "[data]graphite_ocp_Enertech_Ai2020", "Negative electrode porosity": 0.33, "Negative electrode active material volume fraction": 0.61, "Negative particle radius [m]": 5e-06, @@ -675,7 +687,7 @@ def get_parameter_values(): "Positive electrode conductivity [S.m-1]": 10.0, "Maximum concentration in positive electrode [mol.m-3]": 49943.0, "Positive electrode diffusivity [m2.s-1]": lico2_diffusivity_Dualfoil1998, - "Positive electrode OCP [V]": '[data]lico2_ocp_Ai2020', + "Positive electrode OCP [V]": "[data]lico2_ocp_Ai2020", "Positive electrode porosity": 0.32, "Positive electrode active material volume fraction": 0.62, "Positive particle radius [m]": 3e-06, @@ -731,5 +743,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 21725.0, "Initial temperature [K]": 298.15, # citations - 'citations': ['Ai2019'], - } \ No newline at end of file + "citations": ["Ai2019"], + } diff --git a/pybamm/input/parameters/lithium_ion/Chen2020.py b/pybamm/input/parameters/lithium_ion/Chen2020.py index 093520972e..6a2a064360 100644 --- a/pybamm/input/parameters/lithium_ion/Chen2020.py +++ b/pybamm/input/parameters/lithium_ion/Chen2020.py @@ -34,6 +34,7 @@ def graphite_LGM50_ocp_Chen2020(sto): return u_eq + def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( c_e, c_s_surf, c_s_max, T ): @@ -72,6 +73,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def nmc_LGM50_ocp_Chen2020(sto): """ LG M50 NMC open circuit potential as a function of stochiometry, fit taken @@ -105,6 +107,7 @@ def nmc_LGM50_ocp_Chen2020(sto): return u_eq + def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -141,6 +144,7 @@ def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def electrolyte_diffusivity_Nyman2008(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -171,6 +175,7 @@ def electrolyte_diffusivity_Nyman2008(c_e, T): return D_c_e + def electrolyte_conductivity_Nyman2008(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -208,95 +213,95 @@ def electrolyte_conductivity_Nyman2008(c_e, T): def get_parameter_values(): """ # Chen2020 parameter set - # LG M50 cell parameters - - Parameters for an LG M50 cell, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # LG M50 Graphite negative electrode parameters - - Parameters for a LG M50 graphite negative electrode, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # Separator parameters - - Parameters for an LG M50 separator, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # NMC 811 positive electrode parameters - - Parameters for an LG M50 NMC 811 positive electrode, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and - modelling of the mass transport phenomena in LiPF6-EC-EMC - electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) - Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + # LG M50 cell parameters + + Parameters for an LG M50 cell, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # LG M50 Graphite negative electrode parameters + + Parameters for a LG M50 graphite negative electrode, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # Separator parameters + + Parameters for an LG M50 separator, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # NMC 811 positive electrode parameters + + Parameters for an LG M50 NMC 811 positive electrode, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and + modelling of the mass transport phenomena in LiPF6-EC-EMC + electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) + Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. """ return { @@ -408,5 +413,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 17038.0, "Initial temperature [K]": 298.15, # citations - 'citations': ['Chen2020'], - } \ No newline at end of file + "citations": ["Chen2020"], + } diff --git a/pybamm/input/parameters/lithium_ion/Chen2020_composite.py b/pybamm/input/parameters/lithium_ion/Chen2020_composite.py index 7f1c725189..2704b56a26 100644 --- a/pybamm/input/parameters/lithium_ion/Chen2020_composite.py +++ b/pybamm/input/parameters/lithium_ion/Chen2020_composite.py @@ -39,6 +39,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def silicon_ocp_lithiation_Mark2016(sto): """ silicon Open Circuit Potential (OCP) as a a function of the @@ -82,6 +83,7 @@ def silicon_ocp_lithiation_Mark2016(sto): ) return U_lithiation + def silicon_ocp_delithiation_Mark2016(sto): """ silicon Open Circuit Potential (OCP) as a a function of the @@ -125,6 +127,7 @@ def silicon_ocp_delithiation_Mark2016(sto): ) return U_delithiation + def silicon_LGM50_electrolyte_exchange_current_density_Chen2020( c_e, c_s_surf, c_s_max, T ): @@ -166,6 +169,7 @@ def silicon_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def nmc_LGM50_ocp_Chen2020(sto): """ LG M50 NMC open circuit potential as a function of stochiometry, fit taken @@ -199,6 +203,7 @@ def nmc_LGM50_ocp_Chen2020(sto): return u_eq + def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -235,6 +240,7 @@ def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def electrolyte_diffusivity_Nyman2008(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -265,6 +271,7 @@ def electrolyte_diffusivity_Nyman2008(c_e, T): return D_c_e + def electrolyte_conductivity_Nyman2008(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -302,86 +309,86 @@ def electrolyte_conductivity_Nyman2008(c_e, T): def get_parameter_values(): """ # Chen2020_composite parameter set - # LG M50 cell parameters - - Parameters for an LG M50 cell, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # Graphite/silicon negative electrode parameters - - Parameters for a composite graphite/silicon negative electrode, from the paper - + # LG M50 cell parameters + + Parameters for an LG M50 cell, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # Graphite/silicon negative electrode parameters + + Parameters for a composite graphite/silicon negative electrode, from the paper + > Ai, W., Kirkaldy, N., Jiang, Y., Offer, G., Wang, H., & Wu, B. (2022). A composite - electrode model for lithium-ion batteries with silicon/graphite negative - electrodes. Journal of Power Sources, 527, 231142. - - based on the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # Separator parameters - - Parameters for an LG M50 separator, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # NMC 811 positive electrode parameters - - Parameters for an LG M50 NMC 811 positive electrode, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and - modelling of the mass transport phenomena in LiPF6-EC-EMC - electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) - Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # SEI parameters - - Example parameters for composite SEI on silicon/graphite. Both phases use the same - values, from the paper - - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. + electrode model for lithium-ion batteries with silicon/graphite negative + electrodes. Journal of Power Sources, 527, 231142. + + based on the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # Separator parameters + + Parameters for an LG M50 separator, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # NMC 811 positive electrode parameters + + Parameters for an LG M50 NMC 811 positive electrode, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and + modelling of the mass transport phenomena in LiPF6-EC-EMC + electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) + Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # SEI parameters + + Example parameters for composite SEI on silicon/graphite. Both phases use the same + values, from the paper + + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. """ return { @@ -435,7 +442,7 @@ def get_parameter_values(): "Primary: Maximum concentration in negative electrode [mol.m-3]": 28700.0, "Primary: Initial concentration in negative electrode [mol.m-3]": 27700.0, "Primary: Negative electrode diffusivity [m2.s-1]": 5.5e-14, - "Primary: Negative electrode OCP [V]": '[data]graphite_ocp_Enertech_Ai2020', + "Primary: Negative electrode OCP [V]": "[data]graphite_ocp_Enertech_Ai2020", "Negative electrode porosity": 0.25, "Primary: Negative electrode active material volume fraction": 0.735, "Primary: Negative particle radius [m]": 5.86e-06, @@ -505,5 +512,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 17038.0, "Initial temperature [K]": 298.15, # citations - 'citations': ['Chen2020', 'Ai2022'], - } \ No newline at end of file + "citations": ["Chen2020", "Ai2022"], + } diff --git a/pybamm/input/parameters/lithium_ion/Ecker2015.py b/pybamm/input/parameters/lithium_ion/Ecker2015.py index 082e22e5dc..47df193fcd 100644 --- a/pybamm/input/parameters/lithium_ion/Ecker2015.py +++ b/pybamm/input/parameters/lithium_ion/Ecker2015.py @@ -32,10 +32,13 @@ def graphite_diffusivity_Ecker2015(sto, T): D_ref = 8.4e-13 * pybamm.exp(-11.3 * sto) + 8.2e-15 E_D_s = 3.03e4 - arrhenius = pybamm.exp(-E_D_s / (pybamm.constants.R * T)) * pybamm.exp(E_D_s / (pybamm.constants.R * 296)) + arrhenius = pybamm.exp(-E_D_s / (pybamm.constants.R * T)) * pybamm.exp( + E_D_s / (pybamm.constants.R * 296) + ) return D_ref * arrhenius + def graphite_ocp_Ecker2015_function(sto): """ Graphite OCP as a function of stochiometry [1, 2, 3]. @@ -96,6 +99,7 @@ def graphite_ocp_Ecker2015_function(sto): return u_eq + def graphite_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in @@ -133,15 +137,20 @@ def graphite_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_m k_ref = 1.11 * 1e-10 # multiply by Faraday's constant to get correct units - m_ref = pybamm.constants.F * k_ref # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = ( + pybamm.constants.F * k_ref + ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 53400 - arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp(E_r / (pybamm.constants.R * 296.15)) + arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp( + E_r / (pybamm.constants.R * 296.15) + ) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def nco_diffusivity_Ecker2015(sto, T): """ NCO diffusivity as a function of stochiometry [1, 2, 3]. @@ -173,10 +182,13 @@ def nco_diffusivity_Ecker2015(sto, T): D_ref = 3.7e-13 - 3.4e-13 * pybamm.exp(-12 * (sto - 0.62) * (sto - 0.62)) E_D_s = 8.06e4 - arrhenius = pybamm.exp(-E_D_s / (pybamm.constants.R * T)) * pybamm.exp(E_D_s / (pybamm.constants.R * 296.15)) + arrhenius = pybamm.exp(-E_D_s / (pybamm.constants.R * T)) * pybamm.exp( + E_D_s / (pybamm.constants.R * 296.15) + ) return D_ref * arrhenius + def nco_ocp_Ecker2015_function(sto): """ NCO OCP as a function of stochiometry [1, 2, 3]. @@ -232,6 +244,7 @@ def nco_ocp_Ecker2015_function(sto): ) return u_eq + def nco_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NCO and LiPF6 in @@ -269,15 +282,20 @@ def nco_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_max, T k_ref = 3.01e-11 # multiply by Faraday's constant to get correct units - m_ref = pybamm.constants.F * k_ref # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = ( + pybamm.constants.F * k_ref + ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 4.36e4 - arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp(E_r / (pybamm.constants.R * 296.15)) + arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp( + E_r / (pybamm.constants.R * 296.15) + ) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def electrolyte_diffusivity_Ecker2015(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration [1, 2, 3]. @@ -311,10 +329,16 @@ def electrolyte_diffusivity_Ecker2015(c_e, T): inputs = {"Electrolyte concentration [mol.m-3]": c_e, "Temperature [K]": T} sigma_e = pybamm.FunctionParameter("Electrolyte conductivity [S.m-1]", inputs) - D_c_e = (pybamm.constants.k_b / (pybamm.constants.F * pybamm.constants.q_e)) * sigma_e * T / c_e + D_c_e = ( + (pybamm.constants.k_b / (pybamm.constants.F * pybamm.constants.q_e)) + * sigma_e + * T + / c_e + ) return D_c_e + def electrolyte_conductivity_Ecker2015(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration [1, 2, 3]. @@ -362,147 +386,147 @@ def electrolyte_conductivity_Ecker2015(c_e, T): def get_parameter_values(): """ # Ecker2015 parameter set - # Kokam SLPB 75106100 cell parameters - - Parameters for a Kokam SLPB 75106100 cell, from the papers - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery I. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The tab placement parameters are taken from measurements in - - > Hales, Alastair, et al. "The cell cooling coefficient: a standard to define heat + # Kokam SLPB 75106100 cell parameters + + Parameters for a Kokam SLPB 75106100 cell, from the papers + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery I. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The tab placement parameters are taken from measurements in + + > Hales, Alastair, et al. "The cell cooling coefficient: a standard to define heat rejection from lithium-ion batteries." Journal of The Electrochemical Society 166.12 - (2019): A2383. - - The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data - are extracted from - - > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and - surface cooling on lithium ion cell performance."" Journal of The Electrochemical - Society, 165.13 (2018): A3169-A3178. - # Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the papers: - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery I. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The fits to data for the electrode and electrolyte properties are those provided - by Dr. Simon O’Kane in the paper: - - > Richardson, Giles, et. al. "Generalised single particle models for high-rate - operation of graded lithium-ion electrodes: Systematic derivation and validation." - Electrochemica Acta 339 (2020): 135862 - - The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data - are extracted from - - > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and - surface cooling on lithium ion cell performance."" Journal of The Electrochemical - Society, 165.13 (2018): A3169-A3178. - # Separator parameters - - Parameters for the separator from the papers - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery i. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data - are extracted from - - > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and - surface cooling on lithium ion cell performance."" Journal of The Electrochemical - Society, 165.13 (2018): A3169-A3178. - # Lithium Nickel Cobalt Oxide positive electrode parameters - - Parameters for a Lithium Nickel Cobalt Oxide positive electrode, from the papers - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery i. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The fits to data for the electrode and electrolyte properties are those provided - by Dr. Simon O’Kane in the paper: - - > Richardson, Giles, et. al. "Generalised single particle models for high-rate - operation of graded lithium-ion electrodes: Systematic derivation and validation." - Electrochemica Acta 339 (2020): 135862 - - The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data - are extracted from - - > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and - surface cooling on lithium ion cell performance."" Journal of The Electrochemical - Society, 165.13 (2018): A3169-A3178. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the papers - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery i. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The fits to data for the electrode and electrolyte properties are those provided - by Dr. Simon O’Kane in the paper: - - > Richardson, Giles, et. al. "Generalised single particle models for high-rate - operation of graded lithium-ion electrodes: Systematic derivation and validation." - Electrochemica Acta 339 (2020): 135862 - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857.. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + (2019): A2383. + + The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data + are extracted from + + > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and + surface cooling on lithium ion cell performance."" Journal of The Electrochemical + Society, 165.13 (2018): A3169-A3178. + # Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the papers: + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery I. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The fits to data for the electrode and electrolyte properties are those provided + by Dr. Simon O’Kane in the paper: + + > Richardson, Giles, et. al. "Generalised single particle models for high-rate + operation of graded lithium-ion electrodes: Systematic derivation and validation." + Electrochemica Acta 339 (2020): 135862 + + The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data + are extracted from + + > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and + surface cooling on lithium ion cell performance."" Journal of The Electrochemical + Society, 165.13 (2018): A3169-A3178. + # Separator parameters + + Parameters for the separator from the papers + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery i. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data + are extracted from + + > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and + surface cooling on lithium ion cell performance."" Journal of The Electrochemical + Society, 165.13 (2018): A3169-A3178. + # Lithium Nickel Cobalt Oxide positive electrode parameters + + Parameters for a Lithium Nickel Cobalt Oxide positive electrode, from the papers + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery i. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The fits to data for the electrode and electrolyte properties are those provided + by Dr. Simon O’Kane in the paper: + + > Richardson, Giles, et. al. "Generalised single particle models for high-rate + operation of graded lithium-ion electrodes: Systematic derivation and validation." + Electrochemica Acta 339 (2020): 135862 + + The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data + are extracted from + + > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and + surface cooling on lithium ion cell performance."" Journal of The Electrochemical + Society, 165.13 (2018): A3169-A3178. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the papers + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery i. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The fits to data for the electrode and electrolyte properties are those provided + by Dr. Simon O’Kane in the paper: + + > Richardson, Giles, et. al. "Generalised single particle models for high-rate + operation of graded lithium-ion electrodes: Systematic derivation and validation." + Electrochemica Acta 339 (2020): 135862 + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857.. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. """ return { @@ -559,9 +583,9 @@ def get_parameter_values(): # negative electrode "Negative electrode conductivity [S.m-1]": 14.0, "Maximum concentration in negative electrode [mol.m-3]": 31920.0, - "Measured negative electrode diffusivity [m2.s-1]": '[data]measured_graphite_diffusivity_Ecker2015', + "Measured negative electrode diffusivity [m2.s-1]": "[data]measured_graphite_diffusivity_Ecker2015", "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_Ecker2015, - "Measured negative electrode OCP [V]": '[data]graphite_ocp_Ecker2015', + "Measured negative electrode OCP [V]": "[data]graphite_ocp_Ecker2015", "Negative electrode OCP [V]": graphite_ocp_Ecker2015_function, "Negative electrode porosity": 0.329, "Negative electrode active material volume fraction": 0.372403, @@ -578,9 +602,9 @@ def get_parameter_values(): # positive electrode "Positive electrode conductivity [S.m-1]": 68.1, "Maximum concentration in positive electrode [mol.m-3]": 48580.0, - "Measured positive electrode diffusivity [m2.s-1]": '[data]measured_nco_diffusivity_Ecker2015', + "Measured positive electrode diffusivity [m2.s-1]": "[data]measured_nco_diffusivity_Ecker2015", "Positive electrode diffusivity [m2.s-1]": nco_diffusivity_Ecker2015, - "Measured positive electrode OCP [V]": '[data]nco_ocp_Ecker2015', + "Measured positive electrode OCP [V]": "[data]nco_ocp_Ecker2015", "Positive electrode OCP [V]": nco_ocp_Ecker2015_function, "Positive electrode porosity": 0.296, "Positive electrode active material volume fraction": 0.40832, @@ -624,5 +648,11 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 12630.8, "Initial temperature [K]": 298.15, # citations - 'citations': ['Ecker2015i', 'Ecker2015ii', 'Zhao2018', 'Hales2019', 'Richardson2020'], - } \ No newline at end of file + "citations": [ + "Ecker2015i", + "Ecker2015ii", + "Zhao2018", + "Hales2019", + "Richardson2020", + ], + } diff --git a/pybamm/input/parameters/lithium_ion/Marquis2019.py b/pybamm/input/parameters/lithium_ion/Marquis2019.py index 4c75547002..de6378bb1f 100644 --- a/pybamm/input/parameters/lithium_ion/Marquis2019.py +++ b/pybamm/input/parameters/lithium_ion/Marquis2019.py @@ -29,6 +29,7 @@ def graphite_mcmb2528_diffusivity_Dualfoil1998(sto, T): return D_ref * arrhenius + def graphite_mcmb2528_ocp_Dualfoil1998(sto): """ Graphite MCMB 2528 Open Circuit Potential (OCP) as a function of the @@ -56,6 +57,7 @@ def graphite_mcmb2528_ocp_Dualfoil1998(sto): return u_eq + def graphite_electrolyte_exchange_current_density_Dualfoil1998( c_e, c_s_surf, c_s_max, T ): @@ -91,6 +93,7 @@ def graphite_electrolyte_exchange_current_density_Dualfoil1998( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def graphite_entropic_change_Moura2016(sto, c_s_max): """ Graphite entropic change in open circuit potential (OCP) at a temperature of @@ -121,6 +124,7 @@ def graphite_entropic_change_Moura2016(sto, c_s_max): return du_dT + def lico2_diffusivity_Dualfoil1998(sto, T): """ LiCo2 diffusivity as a function of stochiometry, in this case the @@ -148,6 +152,7 @@ def lico2_diffusivity_Dualfoil1998(sto, T): return D_ref * arrhenius + def lico2_ocp_Dualfoil1998(sto): """ Lithium Cobalt Oxide (LiCO2) Open Circuit Potential (OCP) as a a function of the @@ -185,6 +190,7 @@ def lico2_ocp_Dualfoil1998(sto): return u_eq + def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between lico2 and LiPF6 in @@ -218,6 +224,7 @@ def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def lico2_entropic_change_Moura2016(sto, c_s_max): """ Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at @@ -239,16 +246,22 @@ def lico2_entropic_change_Moura2016(sto, c_s_max): sto = stretch * sto du_dT = ( - 0.07645 * (-54.4806 / c_s_max) * ((1.0 / pybamm.cosh(30.834 - 54.4806 * sto)) ** 2) + 0.07645 + * (-54.4806 / c_s_max) + * ((1.0 / pybamm.cosh(30.834 - 54.4806 * sto)) ** 2) + 2.1581 * (-50.294 / c_s_max) * ((pybamm.cosh(52.294 - 50.294 * sto)) ** (-2)) - + 0.14169 * (19.854 / c_s_max) * ((pybamm.cosh(11.0923 - 19.8543 * sto)) ** (-2)) + + 0.14169 + * (19.854 / c_s_max) + * ((pybamm.cosh(11.0923 - 19.8543 * sto)) ** (-2)) - 0.2051 * (5.4888 / c_s_max) * ((pybamm.cosh(1.4684 - 5.4888 * sto)) ** (-2)) - - (0.2531 / 0.1316 / c_s_max) * ((pybamm.cosh((-sto + 0.56478) / 0.1316)) ** (-2)) + - (0.2531 / 0.1316 / c_s_max) + * ((pybamm.cosh((-sto + 0.56478) / 0.1316)) ** (-2)) - (0.02167 / 0.006 / c_s_max) * ((pybamm.cosh((sto - 0.525) / 0.006)) ** (-2)) ) return du_dT + def electrolyte_diffusivity_Capiglia1999(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. The original data @@ -281,6 +294,7 @@ def electrolyte_diffusivity_Capiglia1999(c_e, T): return D_c_e * arrhenius + def electrolyte_conductivity_Capiglia1999(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration. The original @@ -324,90 +338,90 @@ def electrolyte_conductivity_Capiglia1999(c_e, T): def get_parameter_values(): """ # Marquis2019 parameter set - # Kokam SLPB78205130H cell parameters - - Parameters for a Kokam SLPB78205130H cell, from the paper - + # Kokam SLPB78205130H cell parameters + + Parameters for a Kokam SLPB78205130H cell, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # Graphite MCMB 2528 negative electrode parameters - - Parameters for a graphite MCMB 2528 negative electrode, from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # Graphite MCMB 2528 negative electrode parameters + + Parameters for a graphite MCMB 2528 negative electrode, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # Separator parameters - - Parameters for the separator in the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # Separator parameters + + Parameters for the separator in the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # Lithium Cobalt Oxide positive electrode parameters - - Parameters for a lithium Cobalt Oxide positive electrode, from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # Lithium Cobalt Oxide positive electrode parameters + + Parameters for a lithium Cobalt Oxide positive electrode, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. """ return { @@ -529,5 +543,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 30730.7554385565, "Initial temperature [K]": 298.15, # citations - 'citations': ['Marquis2019'], - } \ No newline at end of file + "citations": ["Marquis2019"], + } diff --git a/pybamm/input/parameters/lithium_ion/Mohtat2020.py b/pybamm/input/parameters/lithium_ion/Mohtat2020.py index 1f86b393df..8edec4e9d8 100644 --- a/pybamm/input/parameters/lithium_ion/Mohtat2020.py +++ b/pybamm/input/parameters/lithium_ion/Mohtat2020.py @@ -29,6 +29,7 @@ def graphite_diffusivity_PeymanMPM(sto, T): return D_ref * arrhenius + def graphite_ocp_PeymanMPM(sto): """ Graphite Open Circuit Potential (OCP) as a function of the @@ -52,6 +53,7 @@ def graphite_ocp_PeymanMPM(sto): return u_eq + def graphite_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in @@ -87,6 +89,7 @@ def graphite_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def graphite_entropic_change_PeymanMPM(sto, c_s_max): """ Graphite entropic change in open circuit potential (OCP) at a temperature of @@ -116,6 +119,7 @@ def graphite_entropic_change_PeymanMPM(sto, c_s_max): return du_dT + def NMC_diffusivity_PeymanMPM(sto, T): """ NMC diffusivity as a function of stochiometry, in this case the @@ -144,6 +148,7 @@ def NMC_diffusivity_PeymanMPM(sto, T): return D_ref * arrhenius + def NMC_ocp_PeymanMPM(sto): """ Nickel Managanese Cobalt Oxide (NMC) Open Circuit Potential (OCP) as a @@ -172,6 +177,7 @@ def NMC_ocp_PeymanMPM(sto): return u_eq + def NMC_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -205,6 +211,7 @@ def NMC_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_max, T m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def NMC_entropic_change_PeymanMPM(sto, c_s_max): """ Nickel Manganese Cobalt (NMC) entropic change in open circuit potential (OCP) at @@ -242,6 +249,7 @@ def NMC_entropic_change_PeymanMPM(sto, c_s_max): return du_dT + def electrolyte_diffusivity_PeymanMPM(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. The original data @@ -274,6 +282,7 @@ def electrolyte_diffusivity_PeymanMPM(c_e, T): return D_c_e * arrhenius + def electrolyte_conductivity_PeymanMPM(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration. The original @@ -310,36 +319,36 @@ def electrolyte_conductivity_PeymanMPM(c_e, T): def get_parameter_values(): """ # Mohtat2020 parameter set - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. - # SEI parameters - - Parameters for lithium plating from the paper: - - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. + # SEI parameters + + Parameters for lithium plating from the paper: + + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. """ return { @@ -468,5 +477,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 31513.0, "Initial temperature [K]": 298.15, # citations - 'citations': ['Mohtat2020'], - } \ No newline at end of file + "citations": ["Mohtat2020"], + } diff --git a/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py b/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py index 27695c6b45..74d7a20754 100644 --- a/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py +++ b/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py @@ -31,6 +31,7 @@ def graphite_diffusivity_Kim2011(sto, T): return D_ref * arrhenius + def graphite_ocp_Kim2011(sto): """ Graphite Open Circuit Potential (OCP) as a function of the stochiometry [1]. @@ -58,6 +59,7 @@ def graphite_ocp_Kim2011(sto): return u_eq + def graphite_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in @@ -109,6 +111,7 @@ def graphite_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max * (c_s_max - c_s_surf) ** alpha ) + def nca_diffusivity_Kim2011(sto, T): """ NCA diffusivity as a function of stochiometry [1]. @@ -138,6 +141,7 @@ def nca_diffusivity_Kim2011(sto, T): return D_ref * arrhenius + def nca_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NCA and LiPF6 in EC:DMC @@ -186,6 +190,7 @@ def nca_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max, T): * (c_s_max - c_s_surf) ** alpha ) + def electrolyte_diffusivity_Kim2011(c_e, T): """ Diffusivity of LiPF6 in EC as a function of ion concentration from [1]. @@ -219,6 +224,7 @@ def electrolyte_diffusivity_Kim2011(c_e, T): return D_c_e + def electrolyte_conductivity_Kim2011(c_e, T): """ Conductivity of LiPF6 in EC as a function of ion concentration from [1]. @@ -257,105 +263,105 @@ def electrolyte_conductivity_Kim2011(c_e, T): def get_parameter_values(): """ # NCA_Kim2011 parameter set - # Pouch cell parameters - - Parameters for a "Nominal Design" pouch cell, from the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - # Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - - Note, only an effective cell volumetric heat capacity is provided in the paper. We + # Pouch cell parameters + + Parameters for a "Nominal Design" pouch cell, from the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + # Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + + Note, only an effective cell volumetric heat capacity is provided in the paper. We therefore used the values for the density and specific heat capacity reported in the - Marquis2019 parameter set in each region and multiplied each density by the ratio - of the volumetric heat capacity provided in smith to the calculated value. This - ensures that the values produce the same effective cell volumetric heat capacity. - This works fine for thermal models that are averaged over the x-direction but not - for full (PDE in x direction) thermal models. We do the same for the planar - effective thermal conductivity. - # Separator parameters - - Parameters for the separator in the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - - and references therein. - - Note, only an effective cell volumetric heat capacity is provided in the paper. We + Marquis2019 parameter set in each region and multiplied each density by the ratio + of the volumetric heat capacity provided in smith to the calculated value. This + ensures that the values produce the same effective cell volumetric heat capacity. + This works fine for thermal models that are averaged over the x-direction but not + for full (PDE in x direction) thermal models. We do the same for the planar + effective thermal conductivity. + # Separator parameters + + Parameters for the separator in the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + + and references therein. + + Note, only an effective cell volumetric heat capacity is provided in the paper. We therefore used the values for the density and specific heat capacity reported in the - Marquis2019 parameter set in each region and multiplied each density by the ratio - of the volumetric heat capacity provided in smith to the calculated value. This - ensures that the values produce the same effective cell volumetric heat capacity. - This works fine for thermal models that are averaged over the x-direction but not - for full (PDE in x direction) thermal models. We do the same for the planar - effective thermal conductivity. - # Nickel Cobalt Aluminium (NCA) positive electrode parameters - - Parameters for an NCA positive electrode, from the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - - Note, only an effective cell volumetric heat capacity is provided in the paper. We + Marquis2019 parameter set in each region and multiplied each density by the ratio + of the volumetric heat capacity provided in smith to the calculated value. This + ensures that the values produce the same effective cell volumetric heat capacity. + This works fine for thermal models that are averaged over the x-direction but not + for full (PDE in x direction) thermal models. We do the same for the planar + effective thermal conductivity. + # Nickel Cobalt Aluminium (NCA) positive electrode parameters + + Parameters for an NCA positive electrode, from the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + + Note, only an effective cell volumetric heat capacity is provided in the paper. We therefore used the values for the density and specific heat capacity reported in the - Marquis2019 parameter set in each region and multiplied each density by the ratio - of the volumetric heat capacity provided in smith to the calculated value. This - ensures that the values produce the same effective cell volumetric heat capacity. - This works fine for thermal models that are averaged over the x-direction but not - for full (PDE in x direction) thermal models. We do the same for the planar - effective thermal conductivity. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - - and references therein. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + Marquis2019 parameter set in each region and multiplied each density by the ratio + of the volumetric heat capacity provided in smith to the calculated value. This + ensures that the values produce the same effective cell volumetric heat capacity. + This works fine for thermal models that are averaged over the x-direction but not + for full (PDE in x direction) thermal models. We do the same for the planar + effective thermal conductivity. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. """ return { @@ -432,7 +438,7 @@ def get_parameter_values(): "Positive electrode conductivity [S.m-1]": 10.0, "Maximum concentration in positive electrode [mol.m-3]": 49000.0, "Positive electrode diffusivity [m2.s-1]": nca_diffusivity_Kim2011, - "Positive electrode OCP [V]": '[data]nca_ocp_Kim2011_data', + "Positive electrode OCP [V]": "[data]nca_ocp_Kim2011_data", "Positive electrode porosity": 0.4, "Positive electrode active material volume fraction": 0.41, "Positive particle radius [m]": 1.633e-06, @@ -477,5 +483,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 20090.0, "Initial temperature [K]": 298.15, # citations - 'citations': ['Kim2011'], - } \ No newline at end of file + "citations": ["Kim2011"], + } diff --git a/pybamm/input/parameters/lithium_ion/OKane2022.py b/pybamm/input/parameters/lithium_ion/OKane2022.py index ff13e398e5..1dd9300610 100644 --- a/pybamm/input/parameters/lithium_ion/OKane2022.py +++ b/pybamm/input/parameters/lithium_ion/OKane2022.py @@ -28,6 +28,7 @@ def plating_exchange_current_density_OKane2020(c_e, c_Li, T): return pybamm.constants.F * k_plating * c_e + def stripping_exchange_current_density_OKane2020(c_e, c_Li, T): """ Exchange-current density for Li stripping reaction [A.m-2]. @@ -61,6 +62,7 @@ def stripping_exchange_current_density_OKane2020(c_e, c_Li, T): return pybamm.constants.F * k_plating * c_Li + def SEI_limited_dead_lithium_OKane2022(L_sei): """ Decay rate for dead lithium formation [s-1]. @@ -89,6 +91,7 @@ def SEI_limited_dead_lithium_OKane2022(L_sei): return gamma + def graphite_LGM50_diffusivity_Chen2020(sto, T): """ LG M50 Graphite diffusivity as a function of stochiometry, in this case the @@ -121,6 +124,7 @@ def graphite_LGM50_diffusivity_Chen2020(sto, T): return D_ref * arrhenius + def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( c_e, c_s_surf, c_s_max, T ): @@ -160,6 +164,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def graphite_volume_change_Ai2020(sto, c_s_max): """ Graphite particle volume change as a function of stochiometry [1, 2]. @@ -208,6 +213,7 @@ def graphite_volume_change_Ai2020(sto, c_s_max): ) return t_change + def graphite_cracking_rate_Ai2020(T_dim): """ Graphite particle cracking rate as a function of temperature [1, 2]. @@ -238,6 +244,7 @@ def graphite_cracking_rate_Ai2020(T_dim): arrhenius = pybamm.exp(Eac_cr / pybamm.constants.R * (1 / T_dim - 1 / 298.15)) return k_cr * arrhenius + def nmc_LGM50_diffusivity_Chen2020(sto, T): """ NMC diffusivity as a function of stoichiometry, in this case the @@ -269,6 +276,7 @@ def nmc_LGM50_diffusivity_Chen2020(sto, T): return D_ref * arrhenius + def nmc_LGM50_ocp_Chen2020(sto): """ LG M50 NMC open circuit potential as a function of stochiometry, fit taken @@ -302,6 +310,7 @@ def nmc_LGM50_ocp_Chen2020(sto): return u_eq + def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -336,6 +345,7 @@ def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def volume_change_Ai2020(sto, c_s_max): """ Particle volume change as a function of stochiometry [1, 2]. @@ -364,6 +374,7 @@ def volume_change_Ai2020(sto, c_s_max): t_change = omega * c_s_max * sto return t_change + def cracking_rate_Ai2020(T_dim): """ Particle cracking rate as a function of temperature [1, 2]. @@ -394,6 +405,7 @@ def cracking_rate_Ai2020(T_dim): arrhenius = pybamm.exp(Eac_cr / pybamm.constants.R * (1 / T_dim - 1 / 298.15)) return k_cr * arrhenius + def electrolyte_diffusivity_Nyman2008_arrhenius(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -431,6 +443,7 @@ def electrolyte_diffusivity_Nyman2008_arrhenius(c_e, T): return D_c_e * arrhenius + def electrolyte_conductivity_Nyman2008_arrhenius(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -475,103 +488,103 @@ def electrolyte_conductivity_Nyman2008_arrhenius(c_e, T): def get_parameter_values(): """ # OKane2022 parameter set - # LG M50 cell parameters - - Parameters for an LG M50 cell, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # LG M50 Graphite anode parameters - - Parameters for an LG M50 graphite negative electrode, from the paper - - > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, - Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. - ["Lithium-ion battery degradation: how to model - it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical - Chemistry: Chemical Physics 24 (2022): 7909-7922 - - and references therein. - # Separator parameters - - Parameters for an LG M50 separator, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # NMC 811 positive electrode parameters - - Parameters for an LG M50 NMC 811 positive electrode, from the paper - - > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, - Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. - ["Lithium-ion battery degradation: how to model - it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical - Chemistry: Chemical Physics 24 (2022): 7909-7922 - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, - Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. - ["Lithium-ion battery degradation: how to model - it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical - Chemistry: Chemical Physics 24 (2022): 7909-7922 - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # SEI parameters - - Parameters for SEI growth from the paper - - > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, - Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. - ["Lithium-ion battery degradation: how to model - it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical - Chemistry: Chemical Physics 24 (2022): 7909-7922 - - and references therein. - - Note: this parameter set does not claim to be representative of the true parameter - values. These are merely the parameter values that were used in the referenced - papers. - # Lithium plating parameters - - Some example parameters for lithium plating from the paper: - - > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, - Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. - ["Lithium-ion battery degradation: how to model - it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical - Chemistry: Chemical Physics 24 (2022): 7909-7922 - - and references therein. - - Note: this parameter set does not claim to be representative of the true parameter - values. These are merely the parameter values that were used in the referenced - papers. + # LG M50 cell parameters + + Parameters for an LG M50 cell, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # LG M50 Graphite anode parameters + + Parameters for an LG M50 graphite negative electrode, from the paper + + > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, + Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. + ["Lithium-ion battery degradation: how to model + it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical + Chemistry: Chemical Physics 24 (2022): 7909-7922 + + and references therein. + # Separator parameters + + Parameters for an LG M50 separator, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # NMC 811 positive electrode parameters + + Parameters for an LG M50 NMC 811 positive electrode, from the paper + + > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, + Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. + ["Lithium-ion battery degradation: how to model + it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical + Chemistry: Chemical Physics 24 (2022): 7909-7922 + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, + Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. + ["Lithium-ion battery degradation: how to model + it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical + Chemistry: Chemical Physics 24 (2022): 7909-7922 + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # SEI parameters + + Parameters for SEI growth from the paper + + > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, + Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. + ["Lithium-ion battery degradation: how to model + it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical + Chemistry: Chemical Physics 24 (2022): 7909-7922 + + and references therein. + + Note: this parameter set does not claim to be representative of the true parameter + values. These are merely the parameter values that were used in the referenced + papers. + # Lithium plating parameters + + Some example parameters for lithium plating from the paper: + + > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, + Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. + ["Lithium-ion battery degradation: how to model + it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical + Chemistry: Chemical Physics 24 (2022): 7909-7922 + + and references therein. + + Note: this parameter set does not claim to be representative of the true parameter + values. These are merely the parameter values that were used in the referenced + papers. """ return { @@ -634,7 +647,7 @@ def get_parameter_values(): "Negative electrode conductivity [S.m-1]": 215.0, "Maximum concentration in negative electrode [mol.m-3]": 33133.0, "Negative electrode diffusivity [m2.s-1]": graphite_LGM50_diffusivity_Chen2020, - "Negative electrode OCP [V]": '[data]graphite_LGM50_ocp_Chen2020', + "Negative electrode OCP [V]": "[data]graphite_LGM50_ocp_Chen2020", "Negative electrode porosity": 0.25, "Negative electrode active material volume fraction": 0.75, "Negative particle radius [m]": 5.86e-06, @@ -721,5 +734,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 17038.0, "Initial temperature [K]": 298.15, # citations - 'citations': ['OKane2022', 'Chen2020'], - } \ No newline at end of file + "citations": ["OKane2022", "Chen2020"], + } diff --git a/pybamm/input/parameters/lithium_ion/ORegan2022.py b/pybamm/input/parameters/lithium_ion/ORegan2022.py index 55d6a83119..620ae33b62 100644 --- a/pybamm/input/parameters/lithium_ion/ORegan2022.py +++ b/pybamm/input/parameters/lithium_ion/ORegan2022.py @@ -26,6 +26,7 @@ def copper_heat_capacity_CRC(T): return cp + def aluminium_heat_capacity_CRC(T): """ Aluminium specific heat capacity as a function of the temperature from [1]. @@ -50,6 +51,7 @@ def aluminium_heat_capacity_CRC(T): return cp + def copper_thermal_conductivity_CRC(T): """ Copper thermal conductivity as a function of the temperature from [1]. @@ -74,6 +76,7 @@ def copper_thermal_conductivity_CRC(T): return lambda_th + def graphite_LGM50_diffusivity_ORegan2022(sto, T): """ LG M50 Graphite diffusivity as a function of stochiometry, in this case the @@ -132,6 +135,7 @@ def graphite_LGM50_diffusivity_ORegan2022(sto, T): return D_ref * arrhenius + def graphite_LGM50_ocp_Chen2020(sto): """ LG M50 Graphite open-circuit potential as a function of stochiometry, fit taken @@ -165,6 +169,7 @@ def graphite_LGM50_ocp_Chen2020(sto): return U + def graphite_LGM50_electrolyte_exchange_current_density_ORegan2022( c_e, c_s_surf, c_s_max, T ): @@ -210,6 +215,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_ORegan2022( * (1 - c_s_surf / c_s_max) ** (1 - alpha) ) + def graphite_LGM50_heat_capacity_ORegan2022(T): """ Wet negative electrode specific heat capacity as a function of the temperature from @@ -251,6 +257,7 @@ def graphite_LGM50_heat_capacity_ORegan2022(T): return cp_wet + def graphite_LGM50_thermal_conductivity_ORegan2022(T): """ Wet negative electrode thermal conductivity as a function of the temperature from @@ -277,6 +284,7 @@ def graphite_LGM50_thermal_conductivity_ORegan2022(T): return lambda_wet + def graphite_LGM50_entropic_change_ORegan2022(sto, c_s_max): """ LG M50 Graphite entropic change in open circuit potential (OCP) at a temperature of @@ -313,11 +321,13 @@ def graphite_LGM50_entropic_change_ORegan2022(sto, c_s_max): a0 * sto + c0 + a2 * pybamm.exp(-((sto - b2) ** 2) / c2) - + a1 * (pybamm.tanh(d1 * (sto - (b1 - c1))) - pybamm.tanh(d1 * (sto - (b1 + c1)))) + + a1 + * (pybamm.tanh(d1 * (sto - (b1 - c1))) - pybamm.tanh(d1 * (sto - (b1 + c1)))) ) / 1000 # fit in mV / K return dUdT + def nmc_LGM50_electronic_conductivity_ORegan2022(T): """ Positive electrode electronic conductivity as a function of the temperature from @@ -347,6 +357,7 @@ def nmc_LGM50_electronic_conductivity_ORegan2022(T): return sigma + def nmc_LGM50_diffusivity_ORegan2022(sto, T): """ NMC diffusivity as a function of stoichiometry, in this case the @@ -399,6 +410,7 @@ def nmc_LGM50_diffusivity_ORegan2022(sto, T): return D_ref * arrhenius + def nmc_LGM50_ocp_Chen2020(sto): """ LG M50 NMC open-circuit potential as a function of stoichiometry. The fit is @@ -432,6 +444,7 @@ def nmc_LGM50_ocp_Chen2020(sto): return U + def nmc_LGM50_electrolyte_exchange_current_density_ORegan2022( c_e, c_s_surf, c_s_max, T ): @@ -476,6 +489,7 @@ def nmc_LGM50_electrolyte_exchange_current_density_ORegan2022( * (1 - c_s_surf / c_s_max) ** (1 - alpha) ) + def nmc_LGM50_heat_capacity_ORegan2022(T): """ Wet positive electrode specific heat capacity as a function of the temperature from @@ -517,6 +531,7 @@ def nmc_LGM50_heat_capacity_ORegan2022(T): return cp_wet + def nmc_LGM50_thermal_conductivity_ORegan2022(T): """ Wet positive electrode thermal conductivity as a function of the temperature from @@ -543,6 +558,7 @@ def nmc_LGM50_thermal_conductivity_ORegan2022(T): return lambda_wet + def nmc_LGM50_entropic_change_ORegan2022(sto, c_s_max): """ LG M50 NMC 811 entropic change in open circuit potential (OCP) at a temperature of @@ -572,12 +588,14 @@ def nmc_LGM50_entropic_change_ORegan2022(sto, c_s_max): c2 = 0.02179 dUdT = ( - a1 * pybamm.exp(-((sto - b1) ** 2) / c1) + a2 * pybamm.exp(-((sto - b2) ** 2) / c2) + a1 * pybamm.exp(-((sto - b1) ** 2) / c1) + + a2 * pybamm.exp(-((sto - b2) ** 2) / c2) ) / 1000 # fit in mV / K return dUdT + def separator_LGM50_heat_capacity_ORegan2022(T): """ Wet separator specific heat capacity as a function of the temperature from [1]. @@ -618,6 +636,7 @@ def separator_LGM50_heat_capacity_ORegan2022(T): return cp_wet + def electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019(c_e, T): """ Transference number of LiPF6 in EC:EMC (3:7 w:w) as a function of ion @@ -657,6 +676,7 @@ def electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019(c_e, T): return electrolyte_transference_number_base_Landesfeind2019(c_e, T, coeffs) + def electrolyte_TDF_EC_EMC_3_7_Landesfeind2019(c_e, T): """ Thermodynamic factor (TDF) of LiPF6 in EC:EMC (3:7 w:w) as a function of ion @@ -686,6 +706,7 @@ def electrolyte_TDF_EC_EMC_3_7_Landesfeind2019(c_e, T): return electrolyte_TDF_base_Landesfeind2019(c_e, T, coeffs) + def electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7 w:w) as a function of ion concentration and @@ -713,6 +734,7 @@ def electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019(c_e, T): return electrolyte_diffusivity_base_Landesfeind2019(c_e, T, coeffs) + def electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7 w:w) as a function of ion concentration and @@ -745,65 +767,65 @@ def electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019(c_e, T): def get_parameter_values(): """ # ORegan2022 parameter set - # LG M50 cell parameters - - Parameters for an LG M50 cell, from the paper - - > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. - ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical - battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) - Electrochimica Acta 425 (2022): 140700 - - and references therein. - # LG M50 Graphite negative electrode parameters - - Parameters for a LG M50 graphite negative electrode, from the paper - - > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. - ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical - battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) - Electrochimica Acta 425 (2022): 140700 - - and references therein. - # Separator parameters - - Parameters for an LG M50 separator, from the paper - - > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. - ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical - battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) - Electrochimica Acta 425 (2022): 140700 - - and references therein. - # NMC 811 positive electrode parameters - - Parameters for an LG M50 NMC positive electrode, from the paper - - > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. - ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical - battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) - Electrochimica Acta 425 (2022): 140700 - - and references therein. - # LiPF6 in EC:EMC (3:7 w:w) electrolyte parameters - - Parameters for a LiPF6 in EC:EMC (3:7 w:w) electrolyte, from the paper - - > Johannes Landesfeind and Hubert A. Gasteiger, ["Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery - Electrolytes."](https://iopscience.iop.org/article/10.1149/2.0571912jes) Journal of - the Electrochemical Society 166 (2019): A3079. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. - ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical - battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) - Electrochimica Acta 425 (2022): 140700 - - and references therein. + # LG M50 cell parameters + + Parameters for an LG M50 cell, from the paper + + > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) + Electrochimica Acta 425 (2022): 140700 + + and references therein. + # LG M50 Graphite negative electrode parameters + + Parameters for a LG M50 graphite negative electrode, from the paper + + > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) + Electrochimica Acta 425 (2022): 140700 + + and references therein. + # Separator parameters + + Parameters for an LG M50 separator, from the paper + + > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) + Electrochimica Acta 425 (2022): 140700 + + and references therein. + # NMC 811 positive electrode parameters + + Parameters for an LG M50 NMC positive electrode, from the paper + + > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) + Electrochimica Acta 425 (2022): 140700 + + and references therein. + # LiPF6 in EC:EMC (3:7 w:w) electrolyte parameters + + Parameters for a LiPF6 in EC:EMC (3:7 w:w) electrolyte, from the paper + + > Johannes Landesfeind and Hubert A. Gasteiger, ["Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery + Electrolytes."](https://iopscience.iop.org/article/10.1149/2.0571912jes) Journal of + the Electrochemical Society 166 (2019): A3079. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) + Electrochimica Acta 425 (2022): 140700 + + and references therein. """ return { @@ -892,5 +914,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 13975.0, "Initial temperature [K]": 298.15, # citations - 'citations': ['ORegan2022', 'Chen2020'], - } \ No newline at end of file + "citations": ["ORegan2022", "Chen2020"], + } diff --git a/pybamm/input/parameters/lithium_ion/Prada2013.py b/pybamm/input/parameters/lithium_ion/Prada2013.py index 9c237ac9e0..524d5632f9 100644 --- a/pybamm/input/parameters/lithium_ion/Prada2013.py +++ b/pybamm/input/parameters/lithium_ion/Prada2013.py @@ -34,6 +34,7 @@ def graphite_LGM50_ocp_Chen2020(sto): return u_eq + def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( c_e, c_s_surf, c_s_max, T ): @@ -72,6 +73,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def LFP_ocp_ashfar2017(sto): """ Open-circuit potential for LFP @@ -94,6 +96,7 @@ def LFP_ocp_ashfar2017(sto): return k + def LFP_electrolyte_exchange_current_density_kashkooli2017(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between LFP and electrolyte @@ -130,6 +133,7 @@ def LFP_electrolyte_exchange_current_density_kashkooli2017(c_e, c_s_surf, c_s_ma m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def electrolyte_diffusivity_Nyman2008(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -160,6 +164,7 @@ def electrolyte_diffusivity_Nyman2008(c_e, T): return D_c_e + def electrolyte_conductivity_Nyman2008(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -197,68 +202,68 @@ def electrolyte_conductivity_Nyman2008(c_e, T): def get_parameter_values(): """ # Prada2013 parameter set - # Pouch cell parameters - - Parameters for an A123 LFP cell, from the paper - - > Lain, M. J., Brandon, J., & Kendrick, E. (2019). Design Strategies for High Power - vs. High Energy Lithium Ion Cells. - [Batteries](https://doi.org/10.3390/batteries5040064), 5(4), 64. - # LG M50 Graphite negative electrode parameters - - Parameters for a LG M50 graphite negative electrode, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # Separator parameters - - Parameters for an LG M50 separator, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # Lithium Iron Phosphate positive electrode parameters - - Parameters for an LFP positive electrode, from the paper - + # Pouch cell parameters + + Parameters for an A123 LFP cell, from the paper + + > Lain, M. J., Brandon, J., & Kendrick, E. (2019). Design Strategies for High Power + vs. High Energy Lithium Ion Cells. + [Batteries](https://doi.org/10.3390/batteries5040064), 5(4), 64. + # LG M50 Graphite negative electrode parameters + + Parameters for a LG M50 graphite negative electrode, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # Separator parameters + + Parameters for an LG M50 separator, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # Lithium Iron Phosphate positive electrode parameters + + Parameters for an LFP positive electrode, from the paper + > Prada, E., Di Domenico, D., Creff, Y., Bernard, J., Sauvant-Moynot, V., & Huet, F. - (2013). A simplified electrochemical and thermal aging model of LiFePO4-graphite - Li-ion batteries: power and capacity fade simulations. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.053304jes), 160(4), A616. - - and references therein. The functions used for OCP and exchange-current density are + (2013). A simplified electrochemical and thermal aging model of LiFePO4-graphite + Li-ion batteries: power and capacity fade simulations. [Journal of The + Electrochemical Society](https://doi.org/10.1149/2.053304jes), 160(4), A616. + + and references therein. The functions used for OCP and exchange-current density are from separate references (documented within the functions), to provide better fit to - data - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and - modelling of the mass transport phenomena in LiPF6-EC-EMC - electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) - Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 4C, using the initial conditions - from the paper - + data + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and + modelling of the mass transport phenomena in LiPF6-EC-EMC + electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) + Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 4C, using the initial conditions + from the paper + > Prada, E., Di Domenico, D., Creff, Y., Bernard, J., Sauvant-Moynot, V., & Huet, F. - (2013). A simplified electrochemical and thermal aging model of LiFePO4-graphite - Li-ion batteries: power and capacity fade simulations. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.053304jes), 160(4), A616. - - and references therein. + (2013). A simplified electrochemical and thermal aging model of LiFePO4-graphite + Li-ion batteries: power and capacity fade simulations. [Journal of The + Electrochemical Society](https://doi.org/10.1149/2.053304jes), 160(4), A616. + + and references therein. """ return { @@ -350,5 +355,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 35.3766672, "Initial temperature [K]": 298.15, # citations - 'citations': ['Chen2020', 'Lain2019', 'Prada2013'], - } \ No newline at end of file + "citations": ["Chen2020", "Lain2019", "Prada2013"], + } diff --git a/pybamm/input/parameters/lithium_ion/Ramadass2004.py b/pybamm/input/parameters/lithium_ion/Ramadass2004.py index f8c9cc6ef1..1eb3fbfaa0 100644 --- a/pybamm/input/parameters/lithium_ion/Ramadass2004.py +++ b/pybamm/input/parameters/lithium_ion/Ramadass2004.py @@ -29,6 +29,7 @@ def graphite_mcmb2528_diffusivity_Dualfoil1998(sto, T): return D_ref * arrhenius + def graphite_ocp_Ramadass2004(sto): """ Graphite Open Circuit Potential (OCP) as a function of the @@ -53,6 +54,7 @@ def graphite_ocp_Ramadass2004(sto): return u_eq + def graphite_electrolyte_exchange_current_density_Ramadass2004( c_e, c_s_surf, c_s_max, T ): @@ -90,6 +92,7 @@ def graphite_electrolyte_exchange_current_density_Ramadass2004( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def graphite_entropic_change_Moura2016(sto, c_s_max): """ Graphite entropic change in open circuit potential (OCP) at a temperature of @@ -120,6 +123,7 @@ def graphite_entropic_change_Moura2016(sto, c_s_max): return du_dT + def lico2_diffusivity_Ramadass2004(sto, T): """ LiCo2 diffusivity as a function of stochiometry, in this case the @@ -149,6 +153,7 @@ def lico2_diffusivity_Ramadass2004(sto, T): return D_ref * arrhenius + def lico2_ocp_Ramadass2004(sto): """ Lithium Cobalt Oxide (LiCO2) Open Circuit Potential (OCP) as a a function of the @@ -189,6 +194,7 @@ def lico2_ocp_Ramadass2004(sto): return u_eq + def lico2_electrolyte_exchange_current_density_Ramadass2004(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between lico2 and LiPF6 in @@ -224,6 +230,7 @@ def lico2_electrolyte_exchange_current_density_Ramadass2004(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def lico2_entropic_change_Moura2016(sto, c_s_max): """ Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at @@ -245,16 +252,22 @@ def lico2_entropic_change_Moura2016(sto, c_s_max): sto = stretch * sto du_dT = ( - 0.07645 * (-54.4806 / c_s_max) * ((1.0 / pybamm.cosh(30.834 - 54.4806 * sto)) ** 2) + 0.07645 + * (-54.4806 / c_s_max) + * ((1.0 / pybamm.cosh(30.834 - 54.4806 * sto)) ** 2) + 2.1581 * (-50.294 / c_s_max) * ((pybamm.cosh(52.294 - 50.294 * sto)) ** (-2)) - + 0.14169 * (19.854 / c_s_max) * ((pybamm.cosh(11.0923 - 19.8543 * sto)) ** (-2)) + + 0.14169 + * (19.854 / c_s_max) + * ((pybamm.cosh(11.0923 - 19.8543 * sto)) ** (-2)) - 0.2051 * (5.4888 / c_s_max) * ((pybamm.cosh(1.4684 - 5.4888 * sto)) ** (-2)) - - (0.2531 / 0.1316 / c_s_max) * ((pybamm.cosh((-sto + 0.56478) / 0.1316)) ** (-2)) + - (0.2531 / 0.1316 / c_s_max) + * ((pybamm.cosh((-sto + 0.56478) / 0.1316)) ** (-2)) - (0.02167 / 0.006 / c_s_max) * ((pybamm.cosh((sto - 0.525) / 0.006)) ** (-2)) ) return du_dT + def electrolyte_diffusivity_Ramadass2004(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. @@ -285,6 +298,7 @@ def electrolyte_diffusivity_Ramadass2004(c_e, T): return D_c_e * arrhenius + def electrolyte_conductivity_Ramadass2004(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration. @@ -331,103 +345,103 @@ def electrolyte_conductivity_Ramadass2004(c_e, T): def get_parameter_values(): """ # Ramadass2004 parameter set - # Cell geometry parameters - - Parameters for a lithium Cobalt Oxide positive electrode, from the paper - + # Cell geometry parameters + + Parameters for a lithium Cobalt Oxide positive electrode, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. - Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." - (2004) - > P. Ramadass, Bala Haran, Ralph White, and Branko N. Popov. "Capacity fade of Sony - 18650 cells cycled at elevated temperatures part I." (2002) - - and references therein. - # Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. + Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." + (2004) + > P. Ramadass, Bala Haran, Ralph White, and Branko N. Popov. "Capacity fade of Sony + 18650 cells cycled at elevated temperatures part I." (2002) + + and references therein. + # Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. Popov.["Development of First Principles Capacity Fade Model for Li-Ion Cells."](http - s://scholarcommons.sc.edu/cgi/viewcontent.cgi?article=1161&context=eche_facpub) - (2004) - - and references therein. - # Separator parameters - - Parameters for the separator from the papers - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery i. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data - are extracted from - - > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and - surface cooling on lithium ion cell performance."" Journal of The Electrochemical - Society, 165.13 (2018): A3169-A3178. - # Lithium Cobalt Oxide positive electrode parameters - - Parameters for a lithium Cobalt Oxide positive electrode, from the paper - + s://scholarcommons.sc.edu/cgi/viewcontent.cgi?article=1161&context=eche_facpub) + (2004) + + and references therein. + # Separator parameters + + Parameters for the separator from the papers + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery i. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data + are extracted from + + > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and + surface cooling on lithium ion cell performance."" Journal of The Electrochemical + Society, 165.13 (2018): A3169-A3178. + # Lithium Cobalt Oxide positive electrode parameters + + Parameters for a lithium Cobalt Oxide positive electrode, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. - Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." - (2004) - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. + Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." + (2004) + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. - Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." - (2004) - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. + Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." + (2004) + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. + Electrochemical Society, 151(2), A196-A203. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + Note: Ramadass 2004 has mistakes in units and values of SEI parameters, corrected by - Safari 2009. + Safari 2009. """ return { @@ -544,5 +558,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 25777.5, "Initial temperature [K]": 298.15, # citations - 'citations': ['Ramadass2004'], - } \ No newline at end of file + "citations": ["Ramadass2004"], + } diff --git a/pybamm/input/parameters/lithium_ion/Xu2019.py b/pybamm/input/parameters/lithium_ion/Xu2019.py index 3cae4e4361..157ff5aca2 100644 --- a/pybamm/input/parameters/lithium_ion/Xu2019.py +++ b/pybamm/input/parameters/lithium_ion/Xu2019.py @@ -31,6 +31,7 @@ def li_metal_electrolyte_exchange_current_density_Xu2019(c_e, c_Li, T): return m_ref * c_Li**0.7 * c_e**0.3 + def nmc_ocp_Xu2019(sto): """ Nickel Managanese Cobalt Oxide (NMC) Open Circuit Potential (OCP) as a @@ -78,6 +79,7 @@ def nmc_ocp_Xu2019(sto): return u_eq + def nmc_electrolyte_exchange_current_density_Xu2019(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -107,10 +109,13 @@ def nmc_electrolyte_exchange_current_density_Xu2019(c_e, c_s_surf, c_s_max, T): Exchange-current density [A.m-2] """ # assuming implicit correction of incorrect units from the paper - m_ref = 5.76e-11 * pybamm.constants.F # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = ( + 5.76e-11 * pybamm.constants.F + ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations return m_ref * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + def electrolyte_diffusivity_Valoen2005(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration, from [1] (eqn 14) @@ -144,6 +149,7 @@ def electrolyte_diffusivity_Valoen2005(c_e, T): # note, in the Valoen paper, ln means log10, so its inverse is 10^x return (10 ** (D_0 + D_1 * c_e)) * 1e-4 + def electrolyte_conductivity_Valoen2005(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration, from [1] @@ -185,87 +191,87 @@ def electrolyte_conductivity_Valoen2005(c_e, T): def get_parameter_values(): """ # Xu2019 parameter set - # Kokam SLPB78205130H cell parameters - - Parameters for a Kokam SLPB78205130H cell, from the paper - - > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + # Kokam SLPB78205130H cell parameters + + Parameters for a Kokam SLPB78205130H cell, from the paper + + > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - and references therein. - # Graphite MCMB 2528 anode parameters - - Parameters for a graphite MCMB 2528 anode, from the paper - - > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + and references therein. + # Graphite MCMB 2528 anode parameters + + Parameters for a graphite MCMB 2528 anode, from the paper + + > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - and references therein. - # Separator parameters - - Parameters for a Celgard 2325 separator, from the paper - - > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + and references therein. + # Separator parameters + + Parameters for a Celgard 2325 separator, from the paper + + > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - and references therein. - # Lithium Cobalt Oxide cathode parameters - - Parameters for a lithium Cobalt Oxide cathode, from the paper - - > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + and references therein. + # Lithium Cobalt Oxide cathode parameters + + Parameters for a lithium Cobalt Oxide cathode, from the paper + + > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > Valøen, Lars Ole, and Jan N. Reimers. "Transport properties of LiPF6-based Li-ion - battery electrolytes." Journal of The Electrochemical Society 152.5 (2005): - A882-A891. [doi: 10.1149/1.1872737](http://dx.doi.org/10.1149/1.1872737) - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > Valøen, Lars Ole, and Jan N. Reimers. "Transport properties of LiPF6-based Li-ion + battery electrolytes." Journal of The Electrochemical Society 152.5 (2005): + A882-A891. [doi: 10.1149/1.1872737](http://dx.doi.org/10.1149/1.1872737) + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - and references therein. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. """ return { @@ -349,5 +355,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 4631.0, "Initial temperature [K]": 298.15, # citations - 'citations': ['Xu2019'], - } \ No newline at end of file + "citations": ["Xu2019"], + } From 7f05564e2a195c9446e21b4dc21dc38582de602f Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Tue, 4 Oct 2022 17:17:44 -0400 Subject: [PATCH 08/28] #2334 more test fixes --- .../input/parameters/lead_acid/Sulzer2019.py | 132 ++++--- .../lead_dioxide_Sulzer2019/parameters.csv | 2 - pybamm/input/parameters/lithium_ion/Ai2020.py | 236 ++++++------ .../input/parameters/lithium_ion/Chen2020.py | 189 +++++----- .../lithium_ion/Chen2020_composite.py | 186 ++++----- .../input/parameters/lithium_ion/Ecker2015.py | 346 +++++++++-------- .../parameters/lithium_ion/Marquis2019.py | 185 +++++---- .../parameters/lithium_ion/Mohtat2020.py | 93 +++-- .../parameters/lithium_ion/NCA_Kim2011.py | 212 ++++++----- .../input/parameters/lithium_ion/OKane2022.py | 237 ++++++------ .../parameters/lithium_ion/ORegan2022.py | 353 ++++++++++++++---- .../input/parameters/lithium_ion/Prada2013.py | 133 +++---- .../parameters/lithium_ion/Ramadass2004.py | 211 ++++++----- pybamm/input/parameters/lithium_ion/Xu2019.py | 166 ++++---- .../electrolyte_base_Landesfeind2019.py | 10 +- pybamm/parameters/parameter_values.py | 24 +- 16 files changed, 1557 insertions(+), 1158 deletions(-) diff --git a/pybamm/input/parameters/lead_acid/Sulzer2019.py b/pybamm/input/parameters/lead_acid/Sulzer2019.py index c4ad3d6148..815575f67f 100644 --- a/pybamm/input/parameters/lead_acid/Sulzer2019.py +++ b/pybamm/input/parameters/lead_acid/Sulzer2019.py @@ -20,6 +20,7 @@ def lead_ocp_Bode1977(m): ) return U + def lead_exchange_current_density_Sulzer2019(c_e, T): """ Dimensional exchange-current density in the negative (lead) electrode, from [1]_ @@ -51,6 +52,7 @@ def lead_exchange_current_density_Sulzer2019(c_e, T): return j0 + def lead_dioxide_ocp_Bode1977(m): """ Dimensional open-circuit voltage in the positive (lead-dioxide) electrode [V], @@ -70,6 +72,7 @@ def lead_dioxide_ocp_Bode1977(m): ) return U + def lead_dioxide_exchange_current_density_Sulzer2019(c_e, T): """ Dimensional exchange-current density in the positive electrode, from [1]_ @@ -97,7 +100,7 @@ def lead_dioxide_exchange_current_density_Sulzer2019(c_e, T): """ c_ox = 0 c_hy = 0 - param = LeadAcidParameters() + param = pybamm.LeadAcidParameters() c_w_dim = (1 - c_e * param.V_e - c_ox * param.V_ox - c_hy * param.V_hy) / param.V_w c_w_ref = (1 - param.c_e_typ * param.V_e) / param.V_w c_w = c_w_dim / c_w_ref @@ -107,6 +110,7 @@ def lead_dioxide_exchange_current_density_Sulzer2019(c_e, T): return j0 + def oxygen_exchange_current_density_Sulzer2019(c_e, T): """ Dimensional oxygen exchange-current density in the positive electrode, from [1]_ @@ -138,6 +142,7 @@ def oxygen_exchange_current_density_Sulzer2019(c_e, T): return j0 + def conductivity_Gu1997(c_e): """ Dimensional conductivity of sulfuric acid [S.m-1], from [1]_ citing [2]_ and @@ -159,6 +164,7 @@ def conductivity_Gu1997(c_e): """ return c_e * pybamm.exp(6.23 - 1.34e-4 * c_e - 1.61e-8 * c_e**2) * 1e-4 + def darken_thermodynamic_factor_Chapman1968(c_e): """ Dimensional Darken thermodynamic factor of sulfuric acid, from data in @@ -176,6 +182,7 @@ def darken_thermodynamic_factor_Chapman1968(c_e): """ return 0.49 + 4.1e-4 * c_e + def diffusivity_Gu1997(c_e): """ Dimensional Fickian diffusivity of sulfuric acid [m2.s-1], from [1]_ citing [2]_ @@ -197,6 +204,7 @@ def diffusivity_Gu1997(c_e): """ return (1.75 + 260e-6 * c_e) * 1e-9 + def viscosity_Chapman1968(c_e): """ Dimensional viscosity of sulfuric acid [kg.m-1.s-1], from data in [1]_, as a @@ -216,57 +224,57 @@ def viscosity_Chapman1968(c_e): def get_parameter_values(): """ # Sulzer2019 parameter set - # BBOXX cell parameters - - Cell-specific parameters for BBOXX lead-acid cells, from the paper - - > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster + # BBOXX cell parameters + + Cell-specific parameters for BBOXX lead-acid cells, from the paper + + > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - # Lead negative electrode parameters - - Parameters for a lead negative electrode, from the paper - - > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + # Lead negative electrode parameters + + Parameters for a lead negative electrode, from the paper + + > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - - and references therein. - # AGM separator parameters - - Parameters for an Absorbent Glass Mat (AGM) separator, from the paper - - > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + + and references therein. + # AGM separator parameters + + Parameters for an Absorbent Glass Mat (AGM) separator, from the paper + + > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - - and references therein. - # Lead-dioxide positive electrode parameters - - Parameters for a lead-dioxide positive electrode, from the paper - - > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + + and references therein. + # Lead-dioxide positive electrode parameters + + Parameters for a lead-dioxide positive electrode, from the paper + + > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - - and references therein. - # Sulfuric acid electrolyte parameters - - Parameters for a sulfuric acid electrolyte, from the paper - - > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + + and references therein. + # Sulfuric acid electrolyte parameters + + Parameters for a sulfuric acid electrolyte, from the paper + + > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - - and references therein. - # 1C discharge from full - - Discharge lead-acid battery from full charge at 1C. + [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), + 166(12), 2363 (2019). + + and references therein. + # 1C discharge from full + + Discharge lead-acid battery from full charge at 1C. """ return { @@ -309,18 +317,21 @@ def get_parameter_values(): "Negative electrode capacity [C.m-3]": 3473000000.0, "Negative electrode cation signed stoichiometry": 1.0, "Negative electrode electrons in reaction": 2.0, - "Negative electrode exchange-current density [A.m-2]": lead_exchange_current_density_Sulzer2019, + "Negative electrode exchange-current density [A.m-2]" + "": lead_exchange_current_density_Sulzer2019, "Signed stoichiometry of cations (oxygen reaction)": 4.0, "Signed stoichiometry of water (oxygen reaction)": -1.0, "Signed stoichiometry of oxygen (oxygen reaction)": 1.0, "Electrons in oxygen reaction": 4.0, - "Negative electrode reference exchange-current density (oxygen) [A.m-2]": 2.5e-32, + "Negative electrode reference exchange-current density (oxygen) [A.m-2]" + "": 2.5e-32, "Reference oxygen molecule concentration [mol.m-3]": 1000.0, "Oxygen reference OCP vs SHE [V]": 1.229, "Signed stoichiometry of cations (hydrogen reaction)": 2.0, "Signed stoichiometry of hydrogen (hydrogen reaction)": -1.0, "Electrons in hydrogen reaction": 2.0, - "Negative electrode reference exchange-current density (hydrogen) [A.m-2]": 1.56e-11, + "Negative electrode reference exchange-current density (hydrogen) [A.m-2]" + "": 1.56e-11, "Hydrogen reference OCP vs SHE [V]": 0.0, "Negative electrode double-layer capacity [F.m-2]": 0.2, "Negative electrode density [kg.m-3]": 11300.0, @@ -341,18 +352,19 @@ def get_parameter_values(): "Positive electrode capacity [C.m-3]": 2745000000.0, "Positive electrode cation signed stoichiometry": 3.0, "Positive electrode electrons in reaction": 2.0, - "Positive electrode exchange-current density [A.m-2]": lead_dioxide_exchange_current_density_Sulzer2019, + "Positive electrode exchange-current density [A.m-2]" + "": lead_dioxide_exchange_current_density_Sulzer2019, "Signed stoichiometry of cations (oxygen reaction)": 4.0, - "Signed stoichiometry of water (oxygen reaction)": -1.0, "Signed stoichiometry of oxygen (oxygen reaction)": 1.0, "Electrons in oxygen reaction": 4.0, - "Positive electrode oxygen exchange-current density [A.m-2]": oxygen_exchange_current_density_Sulzer2019, + "Positive electrode oxygen exchange-current density [A.m-2]" + "": oxygen_exchange_current_density_Sulzer2019, "Reference oxygen molecule concentration [mol.m-3]": 1000.0, "Oxygen reference OCP vs SHE [V]": 1.229, "Signed stoichiometry of cations (hydrogen reaction)": 2.0, - "Signed stoichiometry of hydrogen (hydrogen reaction)": -1.0, "Electrons in hydrogen reaction": 2.0, - "Positive electrode reference exchange-current density (hydrogen) [A.m-2]": 0.0, + "Positive electrode reference exchange-current density (hydrogen) [A.m-2]" + "": 0.0, "Hydrogen reference OCP vs SHE [V]": 0.0, "Positive electrode double-layer capacity [F.m-2]": 0.2, "Positive electrode density [kg.m-3]": 9375.0, @@ -392,8 +404,10 @@ def get_parameter_values(): "Reference temperature [K]": 294.85, "Maximum temperature [K]": 333.15, "Ambient temperature [K]": 294.85, - "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, - "Positive current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, + "Negative current collector surface heat transfer coefficient [W.m-2.K-1]" + "": 0.0, + "Positive current collector surface heat transfer coefficient [W.m-2.K-1]" + "": 0.0, "Negative tab heat transfer coefficient [W.m-2.K-1]": 10.0, "Positive tab heat transfer coefficient [W.m-2.K-1]": 10.0, "Total heat transfer coefficient [W.m-2.K-1]": 10.0, @@ -406,5 +420,5 @@ def get_parameter_values(): "Initial oxygen concentration [mol.m-3]": 0.0, "Initial temperature [K]": 294.85, # citations - 'citations': ['Sulzer2019physical'], - } \ No newline at end of file + "citations": ["Sulzer2019physical"], + } diff --git a/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/parameters.csv b/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/parameters.csv index c4787c8623..cef7f627a3 100644 --- a/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/parameters.csv +++ b/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/parameters.csv @@ -22,14 +22,12 @@ Positive electrode cation signed stoichiometry,3,, Positive electrode electrons in reaction,2,, Positive electrode exchange-current density [A.m-2],[function]lead_dioxide_exchange_current_density_Sulzer2019,, Signed stoichiometry of cations (oxygen reaction),4,, -Signed stoichiometry of water (oxygen reaction),-1,, Signed stoichiometry of oxygen (oxygen reaction),1,, Electrons in oxygen reaction,4,, Positive electrode oxygen exchange-current density [A.m-2],[function]oxygen_exchange_current_density_Sulzer2019,, Reference oxygen molecule concentration [mol.m-3],1000,srinivasan2003mathematical, Oxygen reference OCP vs SHE [V],1.229,srinivasan2003mathematical, Signed stoichiometry of cations (hydrogen reaction),2,, -Signed stoichiometry of hydrogen (hydrogen reaction),-1,, Electrons in hydrogen reaction,2,, Positive electrode reference exchange-current density (hydrogen) [A.m-2],0,srinivasan2003mathematical, Hydrogen reference OCP vs SHE [V],0,srinivasan2003mathematical, diff --git a/pybamm/input/parameters/lithium_ion/Ai2020.py b/pybamm/input/parameters/lithium_ion/Ai2020.py index 86d8aeae53..a5cdf1ec09 100644 --- a/pybamm/input/parameters/lithium_ion/Ai2020.py +++ b/pybamm/input/parameters/lithium_ion/Ai2020.py @@ -33,6 +33,7 @@ def graphite_diffusivity_Dualfoil1998(sto, T): arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / T_ref - 1 / T)) return D_ref * arrhenius + def graphite_electrolyte_exchange_current_density_Dualfoil1998( c_e, c_s_surf, c_s_max, T ): @@ -70,6 +71,7 @@ def graphite_electrolyte_exchange_current_density_Dualfoil1998( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def graphite_entropy_Enertech_Ai2020_function(sto, c_s_max): """ Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at @@ -122,6 +124,7 @@ def graphite_entropy_Enertech_Ai2020_function(sto, c_s_max): return du_dT + def graphite_volume_change_Ai2020(sto, c_s_max): """ Graphite particle volume change as a function of stochiometry [1, 2]. @@ -173,6 +176,7 @@ def graphite_volume_change_Ai2020(sto, c_s_max): ) return t_change + def graphite_cracking_rate_Ai2020(T_dim): """ graphite particle cracking rate as a function of temperature [1, 2]. @@ -206,6 +210,7 @@ def graphite_cracking_rate_Ai2020(T_dim): arrhenius = pybamm.exp(Eac_cr / pybamm.constants.R * (1 / T_dim - 1 / T_ref)) return k_cr * arrhenius + def lico2_diffusivity_Dualfoil1998(sto, T): """ LiCo2 diffusivity as a function of stochiometry, in this case the @@ -233,6 +238,7 @@ def lico2_diffusivity_Dualfoil1998(sto, T): arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / T_ref - 1 / T)) return D_ref * arrhenius + def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between lico2 and LiPF6 in @@ -267,6 +273,7 @@ def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def lico2_entropic_change_Ai2020_function(sto, c_s_max): """ Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at @@ -316,6 +323,7 @@ def lico2_entropic_change_Ai2020_function(sto, c_s_max): return du_dT + def lico2_volume_change_Ai2020(sto, c_s_max): """ lico2 particle volume change as a function of stochiometry [1, 2]. @@ -347,6 +355,7 @@ def lico2_volume_change_Ai2020(sto, c_s_max): t_change = omega * c_s_max * sto return t_change + def lico2_cracking_rate_Ai2020(T_dim): """ lico2 particle cracking rate as a function of temperature [1, 2]. @@ -380,6 +389,7 @@ def lico2_cracking_rate_Ai2020(T_dim): arrhenius = pybamm.exp(Eac_cr / pybamm.constants.R * (1 / T_dim - 1 / T_ref)) return k_cr * arrhenius + def dlnf_dlnc_Ai2020(c_e, T, T_ref=298.3, t_plus=0.38): """ Activity dependence of LiPF6 in EC:DMC as a function of ion concentration. @@ -412,6 +422,7 @@ def dlnf_dlnc_Ai2020(c_e, T, T_ref=298.3, t_plus=0.38): ) / (1 - t_plus) return dlnf_dlnc + def electrolyte_diffusivity_Ai2020(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. @@ -441,6 +452,7 @@ def electrolyte_diffusivity_Ai2020(c_e, T): return D_c_e + def electrolyte_conductivity_Ai2020(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration. @@ -487,107 +499,107 @@ def electrolyte_conductivity_Ai2020(c_e, T): def get_parameter_values(): """ # Ai2020 parameter set - # Enertech cell parameters - - Parameters for the Enertech cell, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # Enertech Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # Enertech Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # Lithium Cobalt Oxide positive electrode parameters - - Parameters for a lithium Cobalt Oxide positive electrode, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # Enertech Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + # Enertech cell parameters + + Parameters for the Enertech cell, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # Enertech Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # Enertech Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # Lithium Cobalt Oxide positive electrode parameters + + Parameters for a lithium Cobalt Oxide positive electrode, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # Enertech Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the paper + + > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical + Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. + Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. + + > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model + the thickness change of a commercial pouch cell during discharge. Journal of The + Electrochemical Society, 163(8), A1566-A1575. + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. """ return { @@ -641,7 +653,7 @@ def get_parameter_values(): "Negative electrode conductivity [S.m-1]": 100.0, "Maximum concentration in negative electrode [mol.m-3]": 28700.0, "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_Dualfoil1998, - "Negative electrode OCP [V]": '[data]graphite_ocp_Enertech_Ai2020', + "Negative electrode OCP [V]": "[data]graphite_ocp_Enertech_Ai2020", "Negative electrode porosity": 0.33, "Negative electrode active material volume fraction": 0.61, "Negative particle radius [m]": 5e-06, @@ -651,14 +663,17 @@ def get_parameter_values(): "Negative electrode electrons in reaction": 1.0, "Negative electrode charge transfer coefficient": 0.5, "Negative electrode double-layer capacity [F.m-2]": 0.2, - "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_Dualfoil1998, + "Negative electrode exchange-current density [A.m-2]" + "": graphite_electrolyte_exchange_current_density_Dualfoil1998, "Negative electrode density [kg.m-3]": 2470.0, "Negative electrode specific heat capacity [J.kg-1.K-1]": 1080.2, "Negative electrode thermal conductivity [W.m-1.K-1]": 1.04, - "Negative electrode OCP entropic change [V.K-1]": graphite_entropy_Enertech_Ai2020_function, + "Negative electrode OCP entropic change [V.K-1]" + "": graphite_entropy_Enertech_Ai2020_function, "Negative electrode Poisson's ratio": 0.3, "Negative electrode Young's modulus [Pa]": 15000000000.0, - "Negative electrode reference concentration for free of deformation [mol.m-3]": 0.0, + "Negative electrode reference concentration for free of deformation [mol.m-3]" + "": 0.0, "Negative electrode partial molar volume [m3.mol-1]": 3.1e-06, "Negative electrode volume change": graphite_volume_change_Ai2020, "Negative electrode initial crack length [m]": 2e-08, @@ -675,7 +690,7 @@ def get_parameter_values(): "Positive electrode conductivity [S.m-1]": 10.0, "Maximum concentration in positive electrode [mol.m-3]": 49943.0, "Positive electrode diffusivity [m2.s-1]": lico2_diffusivity_Dualfoil1998, - "Positive electrode OCP [V]": '[data]lico2_ocp_Ai2020', + "Positive electrode OCP [V]": "[data]lico2_ocp_Ai2020", "Positive electrode porosity": 0.32, "Positive electrode active material volume fraction": 0.62, "Positive particle radius [m]": 3e-06, @@ -686,14 +701,17 @@ def get_parameter_values(): "Positive electrode electrons in reaction": 1.0, "Positive electrode charge transfer coefficient": 0.5, "Positive electrode double-layer capacity [F.m-2]": 0.2, - "Positive electrode exchange-current density [A.m-2]": lico2_electrolyte_exchange_current_density_Dualfoil1998, + "Positive electrode exchange-current density [A.m-2]" + "": lico2_electrolyte_exchange_current_density_Dualfoil1998, "Positive electrode density [kg.m-3]": 2470.0, "Positive electrode specific heat capacity [J.kg-1.K-1]": 1080.2, "Positive electrode thermal conductivity [W.m-1.K-1]": 1.58, - "Positive electrode OCP entropic change [V.K-1]": lico2_entropic_change_Ai2020_function, + "Positive electrode OCP entropic change [V.K-1]" + "": lico2_entropic_change_Ai2020_function, "Positive electrode Poisson's ratio": 0.2, "Positive electrode Young's modulus [Pa]": 375000000000.0, - "Positive electrode reference concentration for free of deformation [mol.m-3]": 0.0, + "Positive electrode reference concentration for free of deformation [mol.m-3]" + "": 0.0, "Positive electrode partial molar volume [m3.mol-1]": -7.28e-07, "Positive electrode volume change": lico2_volume_change_Ai2020, "Positive electrode initial crack length [m]": 2e-08, @@ -731,5 +749,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 21725.0, "Initial temperature [K]": 298.15, # citations - 'citations': ['Ai2019'], - } \ No newline at end of file + "citations": ["Ai2019"], + } diff --git a/pybamm/input/parameters/lithium_ion/Chen2020.py b/pybamm/input/parameters/lithium_ion/Chen2020.py index 093520972e..eb6c4aed55 100644 --- a/pybamm/input/parameters/lithium_ion/Chen2020.py +++ b/pybamm/input/parameters/lithium_ion/Chen2020.py @@ -34,6 +34,7 @@ def graphite_LGM50_ocp_Chen2020(sto): return u_eq + def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( c_e, c_s_surf, c_s_max, T ): @@ -72,6 +73,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def nmc_LGM50_ocp_Chen2020(sto): """ LG M50 NMC open circuit potential as a function of stochiometry, fit taken @@ -105,6 +107,7 @@ def nmc_LGM50_ocp_Chen2020(sto): return u_eq + def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -141,6 +144,7 @@ def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def electrolyte_diffusivity_Nyman2008(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -171,6 +175,7 @@ def electrolyte_diffusivity_Nyman2008(c_e, T): return D_c_e + def electrolyte_conductivity_Nyman2008(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -208,95 +213,95 @@ def electrolyte_conductivity_Nyman2008(c_e, T): def get_parameter_values(): """ # Chen2020 parameter set - # LG M50 cell parameters - - Parameters for an LG M50 cell, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # LG M50 Graphite negative electrode parameters - - Parameters for a LG M50 graphite negative electrode, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # Separator parameters - - Parameters for an LG M50 separator, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # NMC 811 positive electrode parameters - - Parameters for an LG M50 NMC 811 positive electrode, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and - modelling of the mass transport phenomena in LiPF6-EC-EMC - electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) - Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + # LG M50 cell parameters + + Parameters for an LG M50 cell, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # LG M50 Graphite negative electrode parameters + + Parameters for a LG M50 graphite negative electrode, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # Separator parameters + + Parameters for an LG M50 separator, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # NMC 811 positive electrode parameters + + Parameters for an LG M50 NMC 811 positive electrode, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and + modelling of the mass transport phenomena in LiPF6-EC-EMC + electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) + Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. """ return { @@ -359,7 +364,8 @@ def get_parameter_values(): "Negative electrode electrons in reaction": 1.0, "Negative electrode charge transfer coefficient": 0.5, "Negative electrode double-layer capacity [F.m-2]": 0.2, - "Negative electrode exchange-current density [A.m-2]": graphite_LGM50_electrolyte_exchange_current_density_Chen2020, + "Negative electrode exchange-current density [A.m-2]" + "": graphite_LGM50_electrolyte_exchange_current_density_Chen2020, "Negative electrode density [kg.m-3]": 1657.0, "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, @@ -378,7 +384,8 @@ def get_parameter_values(): "Positive electrode electrons in reaction": 1.0, "Positive electrode charge transfer coefficient": 0.5, "Positive electrode double-layer capacity [F.m-2]": 0.2, - "Positive electrode exchange-current density [A.m-2]": nmc_LGM50_electrolyte_exchange_current_density_Chen2020, + "Positive electrode exchange-current density [A.m-2]" + "": nmc_LGM50_electrolyte_exchange_current_density_Chen2020, "Positive electrode density [kg.m-3]": 3262.0, "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, @@ -408,5 +415,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 17038.0, "Initial temperature [K]": 298.15, # citations - 'citations': ['Chen2020'], - } \ No newline at end of file + "citations": ["Chen2020"], + } diff --git a/pybamm/input/parameters/lithium_ion/Chen2020_composite.py b/pybamm/input/parameters/lithium_ion/Chen2020_composite.py index 7f1c725189..8d24da2681 100644 --- a/pybamm/input/parameters/lithium_ion/Chen2020_composite.py +++ b/pybamm/input/parameters/lithium_ion/Chen2020_composite.py @@ -39,6 +39,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def silicon_ocp_lithiation_Mark2016(sto): """ silicon Open Circuit Potential (OCP) as a a function of the @@ -82,6 +83,7 @@ def silicon_ocp_lithiation_Mark2016(sto): ) return U_lithiation + def silicon_ocp_delithiation_Mark2016(sto): """ silicon Open Circuit Potential (OCP) as a a function of the @@ -125,6 +127,7 @@ def silicon_ocp_delithiation_Mark2016(sto): ) return U_delithiation + def silicon_LGM50_electrolyte_exchange_current_density_Chen2020( c_e, c_s_surf, c_s_max, T ): @@ -166,6 +169,7 @@ def silicon_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def nmc_LGM50_ocp_Chen2020(sto): """ LG M50 NMC open circuit potential as a function of stochiometry, fit taken @@ -199,6 +203,7 @@ def nmc_LGM50_ocp_Chen2020(sto): return u_eq + def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -235,6 +240,7 @@ def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def electrolyte_diffusivity_Nyman2008(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -265,6 +271,7 @@ def electrolyte_diffusivity_Nyman2008(c_e, T): return D_c_e + def electrolyte_conductivity_Nyman2008(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -302,86 +309,86 @@ def electrolyte_conductivity_Nyman2008(c_e, T): def get_parameter_values(): """ # Chen2020_composite parameter set - # LG M50 cell parameters - - Parameters for an LG M50 cell, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # Graphite/silicon negative electrode parameters - - Parameters for a composite graphite/silicon negative electrode, from the paper - + # LG M50 cell parameters + + Parameters for an LG M50 cell, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # Graphite/silicon negative electrode parameters + + Parameters for a composite graphite/silicon negative electrode, from the paper + > Ai, W., Kirkaldy, N., Jiang, Y., Offer, G., Wang, H., & Wu, B. (2022). A composite - electrode model for lithium-ion batteries with silicon/graphite negative - electrodes. Journal of Power Sources, 527, 231142. - - based on the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # Separator parameters - - Parameters for an LG M50 separator, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # NMC 811 positive electrode parameters - - Parameters for an LG M50 NMC 811 positive electrode, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and - modelling of the mass transport phenomena in LiPF6-EC-EMC - electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) - Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # SEI parameters - - Example parameters for composite SEI on silicon/graphite. Both phases use the same - values, from the paper - - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. + electrode model for lithium-ion batteries with silicon/graphite negative + electrodes. Journal of Power Sources, 527, 231142. + + based on the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # Separator parameters + + Parameters for an LG M50 separator, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # NMC 811 positive electrode parameters + + Parameters for an LG M50 NMC 811 positive electrode, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and + modelling of the mass transport phenomena in LiPF6-EC-EMC + electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) + Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # SEI parameters + + Example parameters for composite SEI on silicon/graphite. Both phases use the same + values, from the paper + + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. """ return { @@ -435,7 +442,7 @@ def get_parameter_values(): "Primary: Maximum concentration in negative electrode [mol.m-3]": 28700.0, "Primary: Initial concentration in negative electrode [mol.m-3]": 27700.0, "Primary: Negative electrode diffusivity [m2.s-1]": 5.5e-14, - "Primary: Negative electrode OCP [V]": '[data]graphite_ocp_Enertech_Ai2020', + "Primary: Negative electrode OCP [V]": "[data]graphite_ocp_Enertech_Ai2020", "Negative electrode porosity": 0.25, "Primary: Negative electrode active material volume fraction": 0.735, "Primary: Negative particle radius [m]": 5.86e-06, @@ -445,7 +452,8 @@ def get_parameter_values(): "Primary: Negative electrode electrons in reaction": 1.0, "Negative electrode charge transfer coefficient": 0.5, "Negative electrode double-layer capacity [F.m-2]": 0.2, - "Primary: Negative electrode exchange-current density [A.m-2]": graphite_LGM50_electrolyte_exchange_current_density_Chen2020, + "Primary: Negative electrode exchange-current density [A.m-2]" + "": graphite_LGM50_electrolyte_exchange_current_density_Chen2020, "Primary: Negative electrode density [kg.m-3]": 1657.0, "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, @@ -453,12 +461,15 @@ def get_parameter_values(): "Secondary: Maximum concentration in negative electrode [mol.m-3]": 278000.0, "Secondary: Initial concentration in negative electrode [mol.m-3]": 276610.0, "Secondary: Negative electrode diffusivity [m2.s-1]": 1.67e-14, - "Secondary: Negative electrode lithiation OCP [V]": silicon_ocp_lithiation_Mark2016, - "Secondary: Negative electrode delithiation OCP [V]": silicon_ocp_delithiation_Mark2016, + "Secondary: Negative electrode lithiation OCP [V]" + "": silicon_ocp_lithiation_Mark2016, + "Secondary: Negative electrode delithiation OCP [V]" + "": silicon_ocp_delithiation_Mark2016, "Secondary: Negative electrode active material volume fraction": 0.015, "Secondary: Negative particle radius [m]": 1.52e-06, "Secondary: Negative electrode electrons in reaction": 1.0, - "Secondary: Negative electrode exchange-current density [A.m-2]": silicon_LGM50_electrolyte_exchange_current_density_Chen2020, + "Secondary: Negative electrode exchange-current density [A.m-2]" + "": silicon_LGM50_electrolyte_exchange_current_density_Chen2020, "Secondary: Negative electrode density [kg.m-3]": 2650.0, "Secondary: Negative electrode OCP entropic change [V.K-1]": 0.0, # positive electrode @@ -475,7 +486,8 @@ def get_parameter_values(): "Positive electrode electrons in reaction": 1.0, "Positive electrode charge transfer coefficient": 0.5, "Positive electrode double-layer capacity [F.m-2]": 0.2, - "Positive electrode exchange-current density [A.m-2]": nmc_LGM50_electrolyte_exchange_current_density_Chen2020, + "Positive electrode exchange-current density [A.m-2]" + "": nmc_LGM50_electrolyte_exchange_current_density_Chen2020, "Positive electrode density [kg.m-3]": 3262.0, "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, @@ -505,5 +517,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 17038.0, "Initial temperature [K]": 298.15, # citations - 'citations': ['Chen2020', 'Ai2022'], - } \ No newline at end of file + "citations": ["Chen2020", "Ai2022"], + } diff --git a/pybamm/input/parameters/lithium_ion/Ecker2015.py b/pybamm/input/parameters/lithium_ion/Ecker2015.py index 082e22e5dc..04e0e07232 100644 --- a/pybamm/input/parameters/lithium_ion/Ecker2015.py +++ b/pybamm/input/parameters/lithium_ion/Ecker2015.py @@ -32,10 +32,13 @@ def graphite_diffusivity_Ecker2015(sto, T): D_ref = 8.4e-13 * pybamm.exp(-11.3 * sto) + 8.2e-15 E_D_s = 3.03e4 - arrhenius = pybamm.exp(-E_D_s / (pybamm.constants.R * T)) * pybamm.exp(E_D_s / (pybamm.constants.R * 296)) + arrhenius = pybamm.exp(-E_D_s / (pybamm.constants.R * T)) * pybamm.exp( + E_D_s / (pybamm.constants.R * 296) + ) return D_ref * arrhenius + def graphite_ocp_Ecker2015_function(sto): """ Graphite OCP as a function of stochiometry [1, 2, 3]. @@ -96,6 +99,7 @@ def graphite_ocp_Ecker2015_function(sto): return u_eq + def graphite_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in @@ -133,15 +137,20 @@ def graphite_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_m k_ref = 1.11 * 1e-10 # multiply by Faraday's constant to get correct units - m_ref = pybamm.constants.F * k_ref # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = ( + pybamm.constants.F * k_ref + ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 53400 - arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp(E_r / (pybamm.constants.R * 296.15)) + arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp( + E_r / (pybamm.constants.R * 296.15) + ) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def nco_diffusivity_Ecker2015(sto, T): """ NCO diffusivity as a function of stochiometry [1, 2, 3]. @@ -173,10 +182,13 @@ def nco_diffusivity_Ecker2015(sto, T): D_ref = 3.7e-13 - 3.4e-13 * pybamm.exp(-12 * (sto - 0.62) * (sto - 0.62)) E_D_s = 8.06e4 - arrhenius = pybamm.exp(-E_D_s / (pybamm.constants.R * T)) * pybamm.exp(E_D_s / (pybamm.constants.R * 296.15)) + arrhenius = pybamm.exp(-E_D_s / (pybamm.constants.R * T)) * pybamm.exp( + E_D_s / (pybamm.constants.R * 296.15) + ) return D_ref * arrhenius + def nco_ocp_Ecker2015_function(sto): """ NCO OCP as a function of stochiometry [1, 2, 3]. @@ -232,6 +244,7 @@ def nco_ocp_Ecker2015_function(sto): ) return u_eq + def nco_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NCO and LiPF6 in @@ -269,15 +282,20 @@ def nco_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_max, T k_ref = 3.01e-11 # multiply by Faraday's constant to get correct units - m_ref = pybamm.constants.F * k_ref # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = ( + pybamm.constants.F * k_ref + ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations E_r = 4.36e4 - arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp(E_r / (pybamm.constants.R * 296.15)) + arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp( + E_r / (pybamm.constants.R * 296.15) + ) return ( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def electrolyte_diffusivity_Ecker2015(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration [1, 2, 3]. @@ -311,10 +329,16 @@ def electrolyte_diffusivity_Ecker2015(c_e, T): inputs = {"Electrolyte concentration [mol.m-3]": c_e, "Temperature [K]": T} sigma_e = pybamm.FunctionParameter("Electrolyte conductivity [S.m-1]", inputs) - D_c_e = (pybamm.constants.k_b / (pybamm.constants.F * pybamm.constants.q_e)) * sigma_e * T / c_e + D_c_e = ( + (pybamm.constants.k_b / (pybamm.constants.F * pybamm.constants.q_e)) + * sigma_e + * T + / c_e + ) return D_c_e + def electrolyte_conductivity_Ecker2015(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration [1, 2, 3]. @@ -362,147 +386,147 @@ def electrolyte_conductivity_Ecker2015(c_e, T): def get_parameter_values(): """ # Ecker2015 parameter set - # Kokam SLPB 75106100 cell parameters - - Parameters for a Kokam SLPB 75106100 cell, from the papers - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery I. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The tab placement parameters are taken from measurements in - - > Hales, Alastair, et al. "The cell cooling coefficient: a standard to define heat + # Kokam SLPB 75106100 cell parameters + + Parameters for a Kokam SLPB 75106100 cell, from the papers + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery I. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The tab placement parameters are taken from measurements in + + > Hales, Alastair, et al. "The cell cooling coefficient: a standard to define heat rejection from lithium-ion batteries." Journal of The Electrochemical Society 166.12 - (2019): A2383. - - The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data - are extracted from - - > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and - surface cooling on lithium ion cell performance."" Journal of The Electrochemical - Society, 165.13 (2018): A3169-A3178. - # Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the papers: - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery I. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The fits to data for the electrode and electrolyte properties are those provided - by Dr. Simon O’Kane in the paper: - - > Richardson, Giles, et. al. "Generalised single particle models for high-rate - operation of graded lithium-ion electrodes: Systematic derivation and validation." - Electrochemica Acta 339 (2020): 135862 - - The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data - are extracted from - - > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and - surface cooling on lithium ion cell performance."" Journal of The Electrochemical - Society, 165.13 (2018): A3169-A3178. - # Separator parameters - - Parameters for the separator from the papers - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery i. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data - are extracted from - - > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and - surface cooling on lithium ion cell performance."" Journal of The Electrochemical - Society, 165.13 (2018): A3169-A3178. - # Lithium Nickel Cobalt Oxide positive electrode parameters - - Parameters for a Lithium Nickel Cobalt Oxide positive electrode, from the papers - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery i. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The fits to data for the electrode and electrolyte properties are those provided - by Dr. Simon O’Kane in the paper: - - > Richardson, Giles, et. al. "Generalised single particle models for high-rate - operation of graded lithium-ion electrodes: Systematic derivation and validation." - Electrochemica Acta 339 (2020): 135862 - - The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data - are extracted from - - > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and - surface cooling on lithium ion cell performance."" Journal of The Electrochemical - Society, 165.13 (2018): A3169-A3178. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the papers - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery i. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The fits to data for the electrode and electrolyte properties are those provided - by Dr. Simon O’Kane in the paper: - - > Richardson, Giles, et. al. "Generalised single particle models for high-rate - operation of graded lithium-ion electrodes: Systematic derivation and validation." - Electrochemica Acta 339 (2020): 135862 - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857.. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + (2019): A2383. + + The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data + are extracted from + + > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and + surface cooling on lithium ion cell performance."" Journal of The Electrochemical + Society, 165.13 (2018): A3169-A3178. + # Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the papers: + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery I. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The fits to data for the electrode and electrolyte properties are those provided + by Dr. Simon O’Kane in the paper: + + > Richardson, Giles, et. al. "Generalised single particle models for high-rate + operation of graded lithium-ion electrodes: Systematic derivation and validation." + Electrochemica Acta 339 (2020): 135862 + + The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data + are extracted from + + > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and + surface cooling on lithium ion cell performance."" Journal of The Electrochemical + Society, 165.13 (2018): A3169-A3178. + # Separator parameters + + Parameters for the separator from the papers + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery i. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data + are extracted from + + > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and + surface cooling on lithium ion cell performance."" Journal of The Electrochemical + Society, 165.13 (2018): A3169-A3178. + # Lithium Nickel Cobalt Oxide positive electrode parameters + + Parameters for a Lithium Nickel Cobalt Oxide positive electrode, from the papers + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery i. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The fits to data for the electrode and electrolyte properties are those provided + by Dr. Simon O’Kane in the paper: + + > Richardson, Giles, et. al. "Generalised single particle models for high-rate + operation of graded lithium-ion electrodes: Systematic derivation and validation." + Electrochemica Acta 339 (2020): 135862 + + The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data + are extracted from + + > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and + surface cooling on lithium ion cell performance."" Journal of The Electrochemical + Society, 165.13 (2018): A3169-A3178. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the papers + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery i. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The fits to data for the electrode and electrolyte properties are those provided + by Dr. Simon O’Kane in the paper: + + > Richardson, Giles, et. al. "Generalised single particle models for high-rate + operation of graded lithium-ion electrodes: Systematic derivation and validation." + Electrochemica Acta 339 (2020): 135862 + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857.. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. """ return { @@ -559,9 +583,10 @@ def get_parameter_values(): # negative electrode "Negative electrode conductivity [S.m-1]": 14.0, "Maximum concentration in negative electrode [mol.m-3]": 31920.0, - "Measured negative electrode diffusivity [m2.s-1]": '[data]measured_graphite_diffusivity_Ecker2015', + "Measured negative electrode diffusivity [m2.s-1]" + "": "[data]measured_graphite_diffusivity_Ecker2015", "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_Ecker2015, - "Measured negative electrode OCP [V]": '[data]graphite_ocp_Ecker2015', + "Measured negative electrode OCP [V]": "[data]graphite_ocp_Ecker2015", "Negative electrode OCP [V]": graphite_ocp_Ecker2015_function, "Negative electrode porosity": 0.329, "Negative electrode active material volume fraction": 0.372403, @@ -570,7 +595,8 @@ def get_parameter_values(): "Negative electrode Bruggeman coefficient (electrode)": 0.0, "Negative electrode cation signed stoichiometry": -1.0, "Negative electrode electrons in reaction": 1.0, - "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_Ecker2015, + "Negative electrode exchange-current density [A.m-2]" + "": graphite_electrolyte_exchange_current_density_Ecker2015, "Negative electrode density [kg.m-3]": 1555.0, "Negative electrode specific heat capacity [J.kg-1.K-1]": 1437.0, "Negative electrode thermal conductivity [W.m-1.K-1]": 1.58, @@ -578,16 +604,18 @@ def get_parameter_values(): # positive electrode "Positive electrode conductivity [S.m-1]": 68.1, "Maximum concentration in positive electrode [mol.m-3]": 48580.0, - "Measured positive electrode diffusivity [m2.s-1]": '[data]measured_nco_diffusivity_Ecker2015', + "Measured positive electrode diffusivity [m2.s-1]" + "": "[data]measured_nco_diffusivity_Ecker2015", "Positive electrode diffusivity [m2.s-1]": nco_diffusivity_Ecker2015, - "Measured positive electrode OCP [V]": '[data]nco_ocp_Ecker2015', + "Measured positive electrode OCP [V]": "[data]nco_ocp_Ecker2015", "Positive electrode OCP [V]": nco_ocp_Ecker2015_function, "Positive electrode porosity": 0.296, "Positive electrode active material volume fraction": 0.40832, "Positive particle radius [m]": 6.5e-06, "Positive electrode Bruggeman coefficient (electrolyte)": 1.5442267190786427, "Positive electrode Bruggeman coefficient (electrode)": 0.0, - "Positive electrode exchange-current density [A.m-2]": nco_electrolyte_exchange_current_density_Ecker2015, + "Positive electrode exchange-current density [A.m-2]" + "": nco_electrolyte_exchange_current_density_Ecker2015, "Positive electrode cation signed stoichiometry": -1.0, "Positive electrode electrons in reaction": 1.0, "Positive electrode density [kg.m-3]": 2895.0, @@ -609,8 +637,10 @@ def get_parameter_values(): "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Ecker2015, # experiment "Reference temperature [K]": 296.15, - "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 10.0, - "Positive current collector surface heat transfer coefficient [W.m-2.K-1]": 10.0, + "Negative current collector surface heat transfer coefficient [W.m-2.K-1]" + "": 10.0, + "Positive current collector surface heat transfer coefficient [W.m-2.K-1]" + "": 10.0, "Negative tab heat transfer coefficient [W.m-2.K-1]": 10.0, "Positive tab heat transfer coefficient [W.m-2.K-1]": 10.0, "Edge heat transfer coefficient [W.m-2.K-1]": 10.0, @@ -624,5 +654,11 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 12630.8, "Initial temperature [K]": 298.15, # citations - 'citations': ['Ecker2015i', 'Ecker2015ii', 'Zhao2018', 'Hales2019', 'Richardson2020'], - } \ No newline at end of file + "citations": [ + "Ecker2015i", + "Ecker2015ii", + "Zhao2018", + "Hales2019", + "Richardson2020", + ], + } diff --git a/pybamm/input/parameters/lithium_ion/Marquis2019.py b/pybamm/input/parameters/lithium_ion/Marquis2019.py index 4c75547002..ea780b2f79 100644 --- a/pybamm/input/parameters/lithium_ion/Marquis2019.py +++ b/pybamm/input/parameters/lithium_ion/Marquis2019.py @@ -29,6 +29,7 @@ def graphite_mcmb2528_diffusivity_Dualfoil1998(sto, T): return D_ref * arrhenius + def graphite_mcmb2528_ocp_Dualfoil1998(sto): """ Graphite MCMB 2528 Open Circuit Potential (OCP) as a function of the @@ -56,6 +57,7 @@ def graphite_mcmb2528_ocp_Dualfoil1998(sto): return u_eq + def graphite_electrolyte_exchange_current_density_Dualfoil1998( c_e, c_s_surf, c_s_max, T ): @@ -91,6 +93,7 @@ def graphite_electrolyte_exchange_current_density_Dualfoil1998( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def graphite_entropic_change_Moura2016(sto, c_s_max): """ Graphite entropic change in open circuit potential (OCP) at a temperature of @@ -121,6 +124,7 @@ def graphite_entropic_change_Moura2016(sto, c_s_max): return du_dT + def lico2_diffusivity_Dualfoil1998(sto, T): """ LiCo2 diffusivity as a function of stochiometry, in this case the @@ -148,6 +152,7 @@ def lico2_diffusivity_Dualfoil1998(sto, T): return D_ref * arrhenius + def lico2_ocp_Dualfoil1998(sto): """ Lithium Cobalt Oxide (LiCO2) Open Circuit Potential (OCP) as a a function of the @@ -185,6 +190,7 @@ def lico2_ocp_Dualfoil1998(sto): return u_eq + def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between lico2 and LiPF6 in @@ -218,6 +224,7 @@ def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def lico2_entropic_change_Moura2016(sto, c_s_max): """ Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at @@ -239,16 +246,22 @@ def lico2_entropic_change_Moura2016(sto, c_s_max): sto = stretch * sto du_dT = ( - 0.07645 * (-54.4806 / c_s_max) * ((1.0 / pybamm.cosh(30.834 - 54.4806 * sto)) ** 2) + 0.07645 + * (-54.4806 / c_s_max) + * ((1.0 / pybamm.cosh(30.834 - 54.4806 * sto)) ** 2) + 2.1581 * (-50.294 / c_s_max) * ((pybamm.cosh(52.294 - 50.294 * sto)) ** (-2)) - + 0.14169 * (19.854 / c_s_max) * ((pybamm.cosh(11.0923 - 19.8543 * sto)) ** (-2)) + + 0.14169 + * (19.854 / c_s_max) + * ((pybamm.cosh(11.0923 - 19.8543 * sto)) ** (-2)) - 0.2051 * (5.4888 / c_s_max) * ((pybamm.cosh(1.4684 - 5.4888 * sto)) ** (-2)) - - (0.2531 / 0.1316 / c_s_max) * ((pybamm.cosh((-sto + 0.56478) / 0.1316)) ** (-2)) + - (0.2531 / 0.1316 / c_s_max) + * ((pybamm.cosh((-sto + 0.56478) / 0.1316)) ** (-2)) - (0.02167 / 0.006 / c_s_max) * ((pybamm.cosh((sto - 0.525) / 0.006)) ** (-2)) ) return du_dT + def electrolyte_diffusivity_Capiglia1999(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. The original data @@ -281,6 +294,7 @@ def electrolyte_diffusivity_Capiglia1999(c_e, T): return D_c_e * arrhenius + def electrolyte_conductivity_Capiglia1999(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration. The original @@ -324,90 +338,90 @@ def electrolyte_conductivity_Capiglia1999(c_e, T): def get_parameter_values(): """ # Marquis2019 parameter set - # Kokam SLPB78205130H cell parameters - - Parameters for a Kokam SLPB78205130H cell, from the paper - + # Kokam SLPB78205130H cell parameters + + Parameters for a Kokam SLPB78205130H cell, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # Graphite MCMB 2528 negative electrode parameters - - Parameters for a graphite MCMB 2528 negative electrode, from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # Graphite MCMB 2528 negative electrode parameters + + Parameters for a graphite MCMB 2528 negative electrode, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # Separator parameters - - Parameters for the separator in the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # Separator parameters + + Parameters for the separator in the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # Lithium Cobalt Oxide positive electrode parameters - - Parameters for a lithium Cobalt Oxide positive electrode, from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # Lithium Cobalt Oxide positive electrode parameters + + Parameters for a lithium Cobalt Oxide positive electrode, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. """ return { @@ -464,7 +478,8 @@ def get_parameter_values(): # negative electrode "Negative electrode conductivity [S.m-1]": 100.0, "Maximum concentration in negative electrode [mol.m-3]": 24983.2619938437, - "Negative electrode diffusivity [m2.s-1]": graphite_mcmb2528_diffusivity_Dualfoil1998, + "Negative electrode diffusivity [m2.s-1]" + "": graphite_mcmb2528_diffusivity_Dualfoil1998, "Negative electrode OCP [V]": graphite_mcmb2528_ocp_Dualfoil1998, "Negative electrode porosity": 0.3, "Negative electrode active material volume fraction": 0.6, @@ -475,11 +490,13 @@ def get_parameter_values(): "Negative electrode electrons in reaction": 1.0, "Negative electrode charge transfer coefficient": 0.5, "Negative electrode double-layer capacity [F.m-2]": 0.2, - "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_Dualfoil1998, + "Negative electrode exchange-current density [A.m-2]" + "": graphite_electrolyte_exchange_current_density_Dualfoil1998, "Negative electrode density [kg.m-3]": 1657.0, "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, - "Negative electrode OCP entropic change [V.K-1]": graphite_entropic_change_Moura2016, + "Negative electrode OCP entropic change [V.K-1]" + "": graphite_entropic_change_Moura2016, # positive electrode "Positive electrode conductivity [S.m-1]": 10.0, "Maximum concentration in positive electrode [mol.m-3]": 51217.9257309275, @@ -494,11 +511,13 @@ def get_parameter_values(): "Positive electrode electrons in reaction": 1.0, "Positive electrode charge transfer coefficient": 0.5, "Positive electrode double-layer capacity [F.m-2]": 0.2, - "Positive electrode exchange-current density [A.m-2]": lico2_electrolyte_exchange_current_density_Dualfoil1998, + "Positive electrode exchange-current density [A.m-2]" + "": lico2_electrolyte_exchange_current_density_Dualfoil1998, "Positive electrode density [kg.m-3]": 3262.0, "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, - "Positive electrode OCP entropic change [V.K-1]": lico2_entropic_change_Moura2016, + "Positive electrode OCP entropic change [V.K-1]" + "": lico2_entropic_change_Moura2016, # separator "Separator porosity": 1.0, "Separator Bruggeman coefficient (electrolyte)": 1.5, @@ -515,8 +534,10 @@ def get_parameter_values(): # experiment "Reference temperature [K]": 298.15, "Ambient temperature [K]": 298.15, - "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, - "Positive current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, + "Negative current collector surface heat transfer coefficient [W.m-2.K-1]" + "": 0.0, + "Positive current collector surface heat transfer coefficient [W.m-2.K-1]" + "": 0.0, "Negative tab heat transfer coefficient [W.m-2.K-1]": 10.0, "Positive tab heat transfer coefficient [W.m-2.K-1]": 10.0, "Edge heat transfer coefficient [W.m-2.K-1]": 0.3, @@ -529,5 +550,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 30730.7554385565, "Initial temperature [K]": 298.15, # citations - 'citations': ['Marquis2019'], - } \ No newline at end of file + "citations": ["Marquis2019"], + } diff --git a/pybamm/input/parameters/lithium_ion/Mohtat2020.py b/pybamm/input/parameters/lithium_ion/Mohtat2020.py index 1f86b393df..e0fc24e3e6 100644 --- a/pybamm/input/parameters/lithium_ion/Mohtat2020.py +++ b/pybamm/input/parameters/lithium_ion/Mohtat2020.py @@ -29,6 +29,7 @@ def graphite_diffusivity_PeymanMPM(sto, T): return D_ref * arrhenius + def graphite_ocp_PeymanMPM(sto): """ Graphite Open Circuit Potential (OCP) as a function of the @@ -52,6 +53,7 @@ def graphite_ocp_PeymanMPM(sto): return u_eq + def graphite_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in @@ -87,6 +89,7 @@ def graphite_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def graphite_entropic_change_PeymanMPM(sto, c_s_max): """ Graphite entropic change in open circuit potential (OCP) at a temperature of @@ -116,6 +119,7 @@ def graphite_entropic_change_PeymanMPM(sto, c_s_max): return du_dT + def NMC_diffusivity_PeymanMPM(sto, T): """ NMC diffusivity as a function of stochiometry, in this case the @@ -144,6 +148,7 @@ def NMC_diffusivity_PeymanMPM(sto, T): return D_ref * arrhenius + def NMC_ocp_PeymanMPM(sto): """ Nickel Managanese Cobalt Oxide (NMC) Open Circuit Potential (OCP) as a @@ -172,6 +177,7 @@ def NMC_ocp_PeymanMPM(sto): return u_eq + def NMC_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -205,6 +211,7 @@ def NMC_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_max, T m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def NMC_entropic_change_PeymanMPM(sto, c_s_max): """ Nickel Manganese Cobalt (NMC) entropic change in open circuit potential (OCP) at @@ -242,6 +249,7 @@ def NMC_entropic_change_PeymanMPM(sto, c_s_max): return du_dT + def electrolyte_diffusivity_PeymanMPM(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. The original data @@ -274,6 +282,7 @@ def electrolyte_diffusivity_PeymanMPM(c_e, T): return D_c_e * arrhenius + def electrolyte_conductivity_PeymanMPM(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration. The original @@ -310,36 +319,36 @@ def electrolyte_conductivity_PeymanMPM(c_e, T): def get_parameter_values(): """ # Mohtat2020 parameter set - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. - # SEI parameters - - Parameters for lithium plating from the paper: - - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. + # SEI parameters + + Parameters for lithium plating from the paper: + + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. """ return { @@ -407,14 +416,17 @@ def get_parameter_values(): "Negative electrode transport efficiency": 0.16, "Negative electrode cation signed stoichiometry": -1.0, "Negative electrode electrons in reaction": 1.0, - "Negative electrode reference exchange-current density [A.m-2(m3.mol)1.5]": 1.061e-06, + "Negative electrode reference exchange-current density [A.m-2(m3.mol)1.5]" + "": 1.061e-06, "Negative electrode charge transfer coefficient": 0.5, "Negative electrode double-layer capacity [F.m-2]": 0.2, - "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_PeymanMPM, + "Negative electrode exchange-current density [A.m-2]" + "": graphite_electrolyte_exchange_current_density_PeymanMPM, "Negative electrode density [kg.m-3]": 3100.0, "Negative electrode specific heat capacity [J.kg-1.K-1]": 1100.0, "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, - "Negative electrode OCP entropic change [V.K-1]": graphite_entropic_change_PeymanMPM, + "Negative electrode OCP entropic change [V.K-1]" + "": graphite_entropic_change_PeymanMPM, # positive electrode "Positive electrode conductivity [S.m-1]": 100.0, "Maximum concentration in positive electrode [mol.m-3]": 35380.0, @@ -428,14 +440,17 @@ def get_parameter_values(): "Positive electrode transport efficiency": 0.16, "Positive electrode cation signed stoichiometry": -1.0, "Positive electrode electrons in reaction": 1.0, - "Positive electrode reference exchange-current density [A.m-2(m3.mol)1.5]": 4.824e-06, + "Positive electrode reference exchange-current density [A.m-2(m3.mol)1.5]" + "": 4.824e-06, "Positive electrode charge transfer coefficient": 0.5, "Positive electrode double-layer capacity [F.m-2]": 0.2, - "Positive electrode exchange-current density [A.m-2]": NMC_electrolyte_exchange_current_density_PeymanMPM, + "Positive electrode exchange-current density [A.m-2]" + "": NMC_electrolyte_exchange_current_density_PeymanMPM, "Positive electrode density [kg.m-3]": 3100.0, "Positive electrode specific heat capacity [J.kg-1.K-1]": 1100.0, "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, - "Positive electrode OCP entropic change [V.K-1]": NMC_entropic_change_PeymanMPM, + "Positive electrode OCP entropic change [V.K-1]" + "": NMC_entropic_change_PeymanMPM, # separator "Separator porosity": 0.4, "Separator Bruggeman coefficient (electrolyte)": 1.5, @@ -453,8 +468,10 @@ def get_parameter_values(): "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_PeymanMPM, # experiment "Reference temperature [K]": 298.15, - "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, - "Positive current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, + "Negative current collector surface heat transfer coefficient [W.m-2.K-1]" + "": 0.0, + "Positive current collector surface heat transfer coefficient [W.m-2.K-1]" + "": 0.0, "Negative tab heat transfer coefficient [W.m-2.K-1]": 0.0, "Positive tab heat transfer coefficient [W.m-2.K-1]": 0.0, "Edge heat transfer coefficient [W.m-2.K-1]": 5.0, @@ -468,5 +485,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 31513.0, "Initial temperature [K]": 298.15, # citations - 'citations': ['Mohtat2020'], - } \ No newline at end of file + "citations": ["Mohtat2020"], + } diff --git a/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py b/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py index 27695c6b45..ac62bb5640 100644 --- a/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py +++ b/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py @@ -31,6 +31,7 @@ def graphite_diffusivity_Kim2011(sto, T): return D_ref * arrhenius + def graphite_ocp_Kim2011(sto): """ Graphite Open Circuit Potential (OCP) as a function of the stochiometry [1]. @@ -58,6 +59,7 @@ def graphite_ocp_Kim2011(sto): return u_eq + def graphite_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in @@ -109,6 +111,7 @@ def graphite_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max * (c_s_max - c_s_surf) ** alpha ) + def nca_diffusivity_Kim2011(sto, T): """ NCA diffusivity as a function of stochiometry [1]. @@ -138,6 +141,7 @@ def nca_diffusivity_Kim2011(sto, T): return D_ref * arrhenius + def nca_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NCA and LiPF6 in EC:DMC @@ -186,6 +190,7 @@ def nca_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max, T): * (c_s_max - c_s_surf) ** alpha ) + def electrolyte_diffusivity_Kim2011(c_e, T): """ Diffusivity of LiPF6 in EC as a function of ion concentration from [1]. @@ -219,6 +224,7 @@ def electrolyte_diffusivity_Kim2011(c_e, T): return D_c_e + def electrolyte_conductivity_Kim2011(c_e, T): """ Conductivity of LiPF6 in EC as a function of ion concentration from [1]. @@ -257,105 +263,105 @@ def electrolyte_conductivity_Kim2011(c_e, T): def get_parameter_values(): """ # NCA_Kim2011 parameter set - # Pouch cell parameters - - Parameters for a "Nominal Design" pouch cell, from the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - # Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - - Note, only an effective cell volumetric heat capacity is provided in the paper. We + # Pouch cell parameters + + Parameters for a "Nominal Design" pouch cell, from the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + # Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + + Note, only an effective cell volumetric heat capacity is provided in the paper. We therefore used the values for the density and specific heat capacity reported in the - Marquis2019 parameter set in each region and multiplied each density by the ratio - of the volumetric heat capacity provided in smith to the calculated value. This - ensures that the values produce the same effective cell volumetric heat capacity. - This works fine for thermal models that are averaged over the x-direction but not - for full (PDE in x direction) thermal models. We do the same for the planar - effective thermal conductivity. - # Separator parameters - - Parameters for the separator in the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - - and references therein. - - Note, only an effective cell volumetric heat capacity is provided in the paper. We + Marquis2019 parameter set in each region and multiplied each density by the ratio + of the volumetric heat capacity provided in smith to the calculated value. This + ensures that the values produce the same effective cell volumetric heat capacity. + This works fine for thermal models that are averaged over the x-direction but not + for full (PDE in x direction) thermal models. We do the same for the planar + effective thermal conductivity. + # Separator parameters + + Parameters for the separator in the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + + and references therein. + + Note, only an effective cell volumetric heat capacity is provided in the paper. We therefore used the values for the density and specific heat capacity reported in the - Marquis2019 parameter set in each region and multiplied each density by the ratio - of the volumetric heat capacity provided in smith to the calculated value. This - ensures that the values produce the same effective cell volumetric heat capacity. - This works fine for thermal models that are averaged over the x-direction but not - for full (PDE in x direction) thermal models. We do the same for the planar - effective thermal conductivity. - # Nickel Cobalt Aluminium (NCA) positive electrode parameters - - Parameters for an NCA positive electrode, from the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - - Note, only an effective cell volumetric heat capacity is provided in the paper. We + Marquis2019 parameter set in each region and multiplied each density by the ratio + of the volumetric heat capacity provided in smith to the calculated value. This + ensures that the values produce the same effective cell volumetric heat capacity. + This works fine for thermal models that are averaged over the x-direction but not + for full (PDE in x direction) thermal models. We do the same for the planar + effective thermal conductivity. + # Nickel Cobalt Aluminium (NCA) positive electrode parameters + + Parameters for an NCA positive electrode, from the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + + Note, only an effective cell volumetric heat capacity is provided in the paper. We therefore used the values for the density and specific heat capacity reported in the - Marquis2019 parameter set in each region and multiplied each density by the ratio - of the volumetric heat capacity provided in smith to the calculated value. This - ensures that the values produce the same effective cell volumetric heat capacity. - This works fine for thermal models that are averaged over the x-direction but not - for full (PDE in x direction) thermal models. We do the same for the planar - effective thermal conductivity. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - - and references therein. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + Marquis2019 parameter set in each region and multiplied each density by the ratio + of the volumetric heat capacity provided in smith to the calculated value. This + ensures that the values produce the same effective cell volumetric heat capacity. + This works fine for thermal models that are averaged over the x-direction but not + for full (PDE in x direction) thermal models. We do the same for the planar + effective thermal conductivity. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). + Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied + length scales. Journal of The Electrochemical Society, 158(8), A955-A969. + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. """ return { @@ -423,7 +429,8 @@ def get_parameter_values(): "Negative electrode electrons in reaction": 1.0, "Negative electrode charge transfer coefficient": 0.5, "Negative electrode double-layer capacity [F.m-2]": 0.2, - "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_Kim2011, + "Negative electrode exchange-current density [A.m-2]" + "": graphite_electrolyte_exchange_current_density_Kim2011, "Negative electrode density [kg.m-3]": 2136.43638, "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, "Negative electrode thermal conductivity [W.m-1.K-1]": 1.1339, @@ -432,7 +439,7 @@ def get_parameter_values(): "Positive electrode conductivity [S.m-1]": 10.0, "Maximum concentration in positive electrode [mol.m-3]": 49000.0, "Positive electrode diffusivity [m2.s-1]": nca_diffusivity_Kim2011, - "Positive electrode OCP [V]": '[data]nca_ocp_Kim2011_data', + "Positive electrode OCP [V]": "[data]nca_ocp_Kim2011_data", "Positive electrode porosity": 0.4, "Positive electrode active material volume fraction": 0.41, "Positive particle radius [m]": 1.633e-06, @@ -442,7 +449,8 @@ def get_parameter_values(): "Positive electrode electrons in reaction": 1.0, "Positive electrode charge transfer coefficient": 0.5, "Positive electrode double-layer capacity [F.m-2]": 0.2, - "Positive electrode exchange-current density [A.m-2]": nca_electrolyte_exchange_current_density_Kim2011, + "Positive electrode exchange-current density [A.m-2]" + "": nca_electrolyte_exchange_current_density_Kim2011, "Positive electrode density [kg.m-3]": 4205.82708, "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, "Positive electrode thermal conductivity [W.m-1.K-1]": 1.4007, @@ -462,8 +470,10 @@ def get_parameter_values(): "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Kim2011, # experiment "Reference temperature [K]": 298.15, - "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, - "Positive current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, + "Negative current collector surface heat transfer coefficient [W.m-2.K-1]" + "": 0.0, + "Positive current collector surface heat transfer coefficient [W.m-2.K-1]" + "": 0.0, "Negative tab heat transfer coefficient [W.m-2.K-1]": 25.0, "Positive tab heat transfer coefficient [W.m-2.K-1]": 25.0, "Edge heat transfer coefficient [W.m-2.K-1]": 0.3, @@ -477,5 +487,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 20090.0, "Initial temperature [K]": 298.15, # citations - 'citations': ['Kim2011'], - } \ No newline at end of file + "citations": ["Kim2011"], + } diff --git a/pybamm/input/parameters/lithium_ion/OKane2022.py b/pybamm/input/parameters/lithium_ion/OKane2022.py index ff13e398e5..60e88c3044 100644 --- a/pybamm/input/parameters/lithium_ion/OKane2022.py +++ b/pybamm/input/parameters/lithium_ion/OKane2022.py @@ -28,6 +28,7 @@ def plating_exchange_current_density_OKane2020(c_e, c_Li, T): return pybamm.constants.F * k_plating * c_e + def stripping_exchange_current_density_OKane2020(c_e, c_Li, T): """ Exchange-current density for Li stripping reaction [A.m-2]. @@ -61,6 +62,7 @@ def stripping_exchange_current_density_OKane2020(c_e, c_Li, T): return pybamm.constants.F * k_plating * c_Li + def SEI_limited_dead_lithium_OKane2022(L_sei): """ Decay rate for dead lithium formation [s-1]. @@ -89,6 +91,7 @@ def SEI_limited_dead_lithium_OKane2022(L_sei): return gamma + def graphite_LGM50_diffusivity_Chen2020(sto, T): """ LG M50 Graphite diffusivity as a function of stochiometry, in this case the @@ -121,6 +124,7 @@ def graphite_LGM50_diffusivity_Chen2020(sto, T): return D_ref * arrhenius + def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( c_e, c_s_surf, c_s_max, T ): @@ -160,6 +164,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def graphite_volume_change_Ai2020(sto, c_s_max): """ Graphite particle volume change as a function of stochiometry [1, 2]. @@ -208,6 +213,7 @@ def graphite_volume_change_Ai2020(sto, c_s_max): ) return t_change + def graphite_cracking_rate_Ai2020(T_dim): """ Graphite particle cracking rate as a function of temperature [1, 2]. @@ -238,6 +244,7 @@ def graphite_cracking_rate_Ai2020(T_dim): arrhenius = pybamm.exp(Eac_cr / pybamm.constants.R * (1 / T_dim - 1 / 298.15)) return k_cr * arrhenius + def nmc_LGM50_diffusivity_Chen2020(sto, T): """ NMC diffusivity as a function of stoichiometry, in this case the @@ -269,6 +276,7 @@ def nmc_LGM50_diffusivity_Chen2020(sto, T): return D_ref * arrhenius + def nmc_LGM50_ocp_Chen2020(sto): """ LG M50 NMC open circuit potential as a function of stochiometry, fit taken @@ -302,6 +310,7 @@ def nmc_LGM50_ocp_Chen2020(sto): return u_eq + def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -336,6 +345,7 @@ def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def volume_change_Ai2020(sto, c_s_max): """ Particle volume change as a function of stochiometry [1, 2]. @@ -364,6 +374,7 @@ def volume_change_Ai2020(sto, c_s_max): t_change = omega * c_s_max * sto return t_change + def cracking_rate_Ai2020(T_dim): """ Particle cracking rate as a function of temperature [1, 2]. @@ -394,6 +405,7 @@ def cracking_rate_Ai2020(T_dim): arrhenius = pybamm.exp(Eac_cr / pybamm.constants.R * (1 / T_dim - 1 / 298.15)) return k_cr * arrhenius + def electrolyte_diffusivity_Nyman2008_arrhenius(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -431,6 +443,7 @@ def electrolyte_diffusivity_Nyman2008_arrhenius(c_e, T): return D_c_e * arrhenius + def electrolyte_conductivity_Nyman2008_arrhenius(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -475,111 +488,113 @@ def electrolyte_conductivity_Nyman2008_arrhenius(c_e, T): def get_parameter_values(): """ # OKane2022 parameter set - # LG M50 cell parameters - - Parameters for an LG M50 cell, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # LG M50 Graphite anode parameters - - Parameters for an LG M50 graphite negative electrode, from the paper - - > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, - Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. - ["Lithium-ion battery degradation: how to model - it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical - Chemistry: Chemical Physics 24 (2022): 7909-7922 - - and references therein. - # Separator parameters - - Parameters for an LG M50 separator, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # NMC 811 positive electrode parameters - - Parameters for an LG M50 NMC 811 positive electrode, from the paper - - > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, - Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. - ["Lithium-ion battery degradation: how to model - it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical - Chemistry: Chemical Physics 24 (2022): 7909-7922 - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, - Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. - ["Lithium-ion battery degradation: how to model - it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical - Chemistry: Chemical Physics 24 (2022): 7909-7922 - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # SEI parameters - - Parameters for SEI growth from the paper - - > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, - Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. - ["Lithium-ion battery degradation: how to model - it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical - Chemistry: Chemical Physics 24 (2022): 7909-7922 - - and references therein. - - Note: this parameter set does not claim to be representative of the true parameter - values. These are merely the parameter values that were used in the referenced - papers. - # Lithium plating parameters - - Some example parameters for lithium plating from the paper: - - > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, - Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. - ["Lithium-ion battery degradation: how to model - it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical - Chemistry: Chemical Physics 24 (2022): 7909-7922 - - and references therein. - - Note: this parameter set does not claim to be representative of the true parameter - values. These are merely the parameter values that were used in the referenced - papers. + # LG M50 cell parameters + + Parameters for an LG M50 cell, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # LG M50 Graphite anode parameters + + Parameters for an LG M50 graphite negative electrode, from the paper + + > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, + Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. + ["Lithium-ion battery degradation: how to model + it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical + Chemistry: Chemical Physics 24 (2022): 7909-7922 + + and references therein. + # Separator parameters + + Parameters for an LG M50 separator, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # NMC 811 positive electrode parameters + + Parameters for an LG M50 NMC 811 positive electrode, from the paper + + > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, + Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. + ["Lithium-ion battery degradation: how to model + it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical + Chemistry: Chemical Physics 24 (2022): 7909-7922 + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, + Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. + ["Lithium-ion battery degradation: how to model + it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical + Chemistry: Chemical Physics 24 (2022): 7909-7922 + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # SEI parameters + + Parameters for SEI growth from the paper + + > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, + Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. + ["Lithium-ion battery degradation: how to model + it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical + Chemistry: Chemical Physics 24 (2022): 7909-7922 + + and references therein. + + Note: this parameter set does not claim to be representative of the true parameter + values. These are merely the parameter values that were used in the referenced + papers. + # Lithium plating parameters + + Some example parameters for lithium plating from the paper: + + > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, + Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. + ["Lithium-ion battery degradation: how to model + it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical + Chemistry: Chemical Physics 24 (2022): 7909-7922 + + and references therein. + + Note: this parameter set does not claim to be representative of the true parameter + values. These are merely the parameter values that were used in the referenced + papers. """ return { # lithium plating "Lithium metal partial molar volume [m3.mol-1]": 1.3e-05, "Lithium plating kinetic rate constant [m.s-1]": 1e-09, - "Exchange-current density for plating [A.m-2]": plating_exchange_current_density_OKane2020, - "Exchange-current density for stripping [A.m-2]": stripping_exchange_current_density_OKane2020, + "Exchange-current density for plating [A.m-2]" + "": plating_exchange_current_density_OKane2020, + "Exchange-current density for stripping [A.m-2]" + "": stripping_exchange_current_density_OKane2020, "Initial plated lithium concentration [mol.m-3]": 0.0, "Typical plated lithium concentration [mol.m-3]": 1000.0, "Lithium plating transfer coefficient": 0.65, @@ -634,7 +649,7 @@ def get_parameter_values(): "Negative electrode conductivity [S.m-1]": 215.0, "Maximum concentration in negative electrode [mol.m-3]": 33133.0, "Negative electrode diffusivity [m2.s-1]": graphite_LGM50_diffusivity_Chen2020, - "Negative electrode OCP [V]": '[data]graphite_LGM50_ocp_Chen2020', + "Negative electrode OCP [V]": "[data]graphite_LGM50_ocp_Chen2020", "Negative electrode porosity": 0.25, "Negative electrode active material volume fraction": 0.75, "Negative particle radius [m]": 5.86e-06, @@ -644,14 +659,16 @@ def get_parameter_values(): "Negative electrode electrons in reaction": 1.0, "Negative electrode charge transfer coefficient": 0.5, "Negative electrode double-layer capacity [F.m-2]": 0.2, - "Negative electrode exchange-current density [A.m-2]": graphite_LGM50_electrolyte_exchange_current_density_Chen2020, + "Negative electrode exchange-current density [A.m-2]" + "": graphite_LGM50_electrolyte_exchange_current_density_Chen2020, "Negative electrode density [kg.m-3]": 1657.0, "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, "Negative electrode OCP entropic change [V.K-1]": 0.0, "Negative electrode Poisson's ratio": 0.3, "Negative electrode Young's modulus [Pa]": 15000000000.0, - "Negative electrode reference concentration for free of deformation [mol.m-3]": 0.0, + "Negative electrode reference concentration for free of deformation [mol.m-3]" + "": 0.0, "Negative electrode partial molar volume [m3.mol-1]": 3.1e-06, "Negative electrode volume change": graphite_volume_change_Ai2020, "Negative electrode initial crack length [m]": 2e-08, @@ -677,14 +694,16 @@ def get_parameter_values(): "Positive electrode electrons in reaction": 1.0, "Positive electrode charge transfer coefficient": 0.5, "Positive electrode double-layer capacity [F.m-2]": 0.2, - "Positive electrode exchange-current density [A.m-2]": nmc_LGM50_electrolyte_exchange_current_density_Chen2020, + "Positive electrode exchange-current density [A.m-2]" + "": nmc_LGM50_electrolyte_exchange_current_density_Chen2020, "Positive electrode density [kg.m-3]": 3262.0, "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, "Positive electrode OCP entropic change [V.K-1]": 0.0, "Positive electrode Poisson's ratio": 0.2, "Positive electrode Young's modulus [Pa]": 375000000000.0, - "Positive electrode reference concentration for free of deformation [mol.m-3]": 0.0, + "Positive electrode reference concentration for free of deformation [mol.m-3]" + "": 0.0, "Positive electrode partial molar volume [m3.mol-1]": 1.25e-05, "Positive electrode volume change": volume_change_Ai2020, "Positive electrode initial crack length [m]": 2e-08, @@ -707,8 +726,10 @@ def get_parameter_values(): "Initial concentration in electrolyte [mol.m-3]": 1000.0, "Cation transference number": 0.2594, "1 + dlnf/dlnc": 1.0, - "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_Nyman2008_arrhenius, - "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_Nyman2008_arrhenius, + "Electrolyte diffusivity [m2.s-1]" + "": electrolyte_diffusivity_Nyman2008_arrhenius, + "Electrolyte conductivity [S.m-1]" + "": electrolyte_conductivity_Nyman2008_arrhenius, # experiment "Reference temperature [K]": 298.15, "Total heat transfer coefficient [W.m-2.K-1]": 10.0, @@ -721,5 +742,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 17038.0, "Initial temperature [K]": 298.15, # citations - 'citations': ['OKane2022', 'Chen2020'], - } \ No newline at end of file + "citations": ["OKane2022", "Chen2020"], + } diff --git a/pybamm/input/parameters/lithium_ion/ORegan2022.py b/pybamm/input/parameters/lithium_ion/ORegan2022.py index 55d6a83119..48f2c8e764 100644 --- a/pybamm/input/parameters/lithium_ion/ORegan2022.py +++ b/pybamm/input/parameters/lithium_ion/ORegan2022.py @@ -2,6 +2,160 @@ import numpy as np +def electrolyte_conductivity_base_Landesfeind2019(c_e, T, coeffs): + """ + Conductivity of LiPF6 in solvent_X as a function of ion concentration and + temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + coeffs: :class:`pybamm.Symbol` + Fitting parameter coefficients + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte conductivity + """ + c = c_e / 1000 # mol.m-3 -> mol.l + p1, p2, p3, p4, p5, p6 = coeffs + A = p1 * (1 + (T - p2)) + B = 1 + p3 * pybamm.sqrt(c) + p4 * (1 + p5 * pybamm.exp(1000 / T)) * c + C = 1 + c**4 * (p6 * pybamm.exp(1000 / T)) + sigma_e = A * c * B / C # mS.cm-1 + + return sigma_e / 10 + + +def electrolyte_diffusivity_base_Landesfeind2019(c_e, T, coeffs): + """ + Diffusivity of LiPF6 in solvent_X as a function of ion concentration and + temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + coeffs: :class:`pybamm.Symbol` + Fitting parameter coefficients + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte diffusivity + """ + c = c_e / 1000 # mol.m-3 -> mol.l + p1, p2, p3, p4 = coeffs + A = p1 * pybamm.exp(p2 * c) + B = pybamm.exp(p3 / T) + C = pybamm.exp(p4 * c / T) + D_e = A * B * C * 1e-10 # m2/s + + return D_e + + +def electrolyte_TDF_base_Landesfeind2019(c_e, T, coeffs): + """ + Thermodynamic factor (TDF) of LiPF6 in solvent_X as a function of ion concentration + and temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + coeffs: :class:`pybamm.Symbol` + Fitting parameter coefficients + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte thermodynamic factor + """ + c = c_e / 1000 # mol.m-3 -> mol.l + p1, p2, p3, p4, p5, p6, p7, p8, p9 = coeffs + tdf = ( + p1 + + p2 * c + + p3 * T + + p4 * c**2 + + p5 * c * T + + p6 * T**2 + + p7 * c**3 + + p8 * c**2 * T + + p9 * c * T**2 + ) + + return tdf + + +def electrolyte_transference_number_base_Landesfeind2019(c_e, T, coeffs): + """ + Transference number of LiPF6 in solvent_X as a function of ion concentration and + temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + coeffs: :class:`pybamm.Symbol` + Fitting parameter coefficients + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte transference number + """ + c = c_e / 1000 # mol.m-3 -> mol.l + p1, p2, p3, p4, p5, p6, p7, p8, p9 = coeffs + tplus = ( + p1 + + p2 * c + + p3 * T + + p4 * c**2 + + p5 * c * T + + p6 * T**2 + + p7 * c**3 + + p8 * c**2 * T + + p9 * c * T**2 + ) + + return tplus + + def copper_heat_capacity_CRC(T): """ Copper specific heat capacity as a function of the temperature from [1]. @@ -26,6 +180,7 @@ def copper_heat_capacity_CRC(T): return cp + def aluminium_heat_capacity_CRC(T): """ Aluminium specific heat capacity as a function of the temperature from [1]. @@ -50,6 +205,7 @@ def aluminium_heat_capacity_CRC(T): return cp + def copper_thermal_conductivity_CRC(T): """ Copper thermal conductivity as a function of the temperature from [1]. @@ -74,6 +230,7 @@ def copper_thermal_conductivity_CRC(T): return lambda_th + def graphite_LGM50_diffusivity_ORegan2022(sto, T): """ LG M50 Graphite diffusivity as a function of stochiometry, in this case the @@ -132,6 +289,7 @@ def graphite_LGM50_diffusivity_ORegan2022(sto, T): return D_ref * arrhenius + def graphite_LGM50_ocp_Chen2020(sto): """ LG M50 Graphite open-circuit potential as a function of stochiometry, fit taken @@ -165,6 +323,7 @@ def graphite_LGM50_ocp_Chen2020(sto): return U + def graphite_LGM50_electrolyte_exchange_current_density_ORegan2022( c_e, c_s_surf, c_s_max, T ): @@ -210,6 +369,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_ORegan2022( * (1 - c_s_surf / c_s_max) ** (1 - alpha) ) + def graphite_LGM50_heat_capacity_ORegan2022(T): """ Wet negative electrode specific heat capacity as a function of the temperature from @@ -251,6 +411,7 @@ def graphite_LGM50_heat_capacity_ORegan2022(T): return cp_wet + def graphite_LGM50_thermal_conductivity_ORegan2022(T): """ Wet negative electrode thermal conductivity as a function of the temperature from @@ -277,6 +438,7 @@ def graphite_LGM50_thermal_conductivity_ORegan2022(T): return lambda_wet + def graphite_LGM50_entropic_change_ORegan2022(sto, c_s_max): """ LG M50 Graphite entropic change in open circuit potential (OCP) at a temperature of @@ -313,11 +475,13 @@ def graphite_LGM50_entropic_change_ORegan2022(sto, c_s_max): a0 * sto + c0 + a2 * pybamm.exp(-((sto - b2) ** 2) / c2) - + a1 * (pybamm.tanh(d1 * (sto - (b1 - c1))) - pybamm.tanh(d1 * (sto - (b1 + c1)))) + + a1 + * (pybamm.tanh(d1 * (sto - (b1 - c1))) - pybamm.tanh(d1 * (sto - (b1 + c1)))) ) / 1000 # fit in mV / K return dUdT + def nmc_LGM50_electronic_conductivity_ORegan2022(T): """ Positive electrode electronic conductivity as a function of the temperature from @@ -347,6 +511,7 @@ def nmc_LGM50_electronic_conductivity_ORegan2022(T): return sigma + def nmc_LGM50_diffusivity_ORegan2022(sto, T): """ NMC diffusivity as a function of stoichiometry, in this case the @@ -399,6 +564,7 @@ def nmc_LGM50_diffusivity_ORegan2022(sto, T): return D_ref * arrhenius + def nmc_LGM50_ocp_Chen2020(sto): """ LG M50 NMC open-circuit potential as a function of stoichiometry. The fit is @@ -432,6 +598,7 @@ def nmc_LGM50_ocp_Chen2020(sto): return U + def nmc_LGM50_electrolyte_exchange_current_density_ORegan2022( c_e, c_s_surf, c_s_max, T ): @@ -476,6 +643,7 @@ def nmc_LGM50_electrolyte_exchange_current_density_ORegan2022( * (1 - c_s_surf / c_s_max) ** (1 - alpha) ) + def nmc_LGM50_heat_capacity_ORegan2022(T): """ Wet positive electrode specific heat capacity as a function of the temperature from @@ -517,6 +685,7 @@ def nmc_LGM50_heat_capacity_ORegan2022(T): return cp_wet + def nmc_LGM50_thermal_conductivity_ORegan2022(T): """ Wet positive electrode thermal conductivity as a function of the temperature from @@ -543,6 +712,7 @@ def nmc_LGM50_thermal_conductivity_ORegan2022(T): return lambda_wet + def nmc_LGM50_entropic_change_ORegan2022(sto, c_s_max): """ LG M50 NMC 811 entropic change in open circuit potential (OCP) at a temperature of @@ -572,12 +742,14 @@ def nmc_LGM50_entropic_change_ORegan2022(sto, c_s_max): c2 = 0.02179 dUdT = ( - a1 * pybamm.exp(-((sto - b1) ** 2) / c1) + a2 * pybamm.exp(-((sto - b2) ** 2) / c2) + a1 * pybamm.exp(-((sto - b1) ** 2) / c1) + + a2 * pybamm.exp(-((sto - b2) ** 2) / c2) ) / 1000 # fit in mV / K return dUdT + def separator_LGM50_heat_capacity_ORegan2022(T): """ Wet separator specific heat capacity as a function of the temperature from [1]. @@ -618,6 +790,7 @@ def separator_LGM50_heat_capacity_ORegan2022(T): return cp_wet + def electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019(c_e, T): """ Transference number of LiPF6 in EC:EMC (3:7 w:w) as a function of ion @@ -657,6 +830,7 @@ def electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019(c_e, T): return electrolyte_transference_number_base_Landesfeind2019(c_e, T, coeffs) + def electrolyte_TDF_EC_EMC_3_7_Landesfeind2019(c_e, T): """ Thermodynamic factor (TDF) of LiPF6 in EC:EMC (3:7 w:w) as a function of ion @@ -686,6 +860,7 @@ def electrolyte_TDF_EC_EMC_3_7_Landesfeind2019(c_e, T): return electrolyte_TDF_base_Landesfeind2019(c_e, T, coeffs) + def electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7 w:w) as a function of ion concentration and @@ -713,6 +888,7 @@ def electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019(c_e, T): return electrolyte_diffusivity_base_Landesfeind2019(c_e, T, coeffs) + def electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7 w:w) as a function of ion concentration and @@ -745,65 +921,65 @@ def electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019(c_e, T): def get_parameter_values(): """ # ORegan2022 parameter set - # LG M50 cell parameters - - Parameters for an LG M50 cell, from the paper - - > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. - ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical - battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) - Electrochimica Acta 425 (2022): 140700 - - and references therein. - # LG M50 Graphite negative electrode parameters - - Parameters for a LG M50 graphite negative electrode, from the paper - - > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. - ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical - battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) - Electrochimica Acta 425 (2022): 140700 - - and references therein. - # Separator parameters - - Parameters for an LG M50 separator, from the paper - - > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. - ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical - battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) - Electrochimica Acta 425 (2022): 140700 - - and references therein. - # NMC 811 positive electrode parameters - - Parameters for an LG M50 NMC positive electrode, from the paper - - > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. - ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical - battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) - Electrochimica Acta 425 (2022): 140700 - - and references therein. - # LiPF6 in EC:EMC (3:7 w:w) electrolyte parameters - - Parameters for a LiPF6 in EC:EMC (3:7 w:w) electrolyte, from the paper - - > Johannes Landesfeind and Hubert A. Gasteiger, ["Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery - Electrolytes."](https://iopscience.iop.org/article/10.1149/2.0571912jes) Journal of - the Electrochemical Society 166 (2019): A3079. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. - ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical - battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) - Electrochimica Acta 425 (2022): 140700 - - and references therein. + # LG M50 cell parameters + + Parameters for an LG M50 cell, from the paper + + > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) + Electrochimica Acta 425 (2022): 140700 + + and references therein. + # LG M50 Graphite negative electrode parameters + + Parameters for a LG M50 graphite negative electrode, from the paper + + > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) + Electrochimica Acta 425 (2022): 140700 + + and references therein. + # Separator parameters + + Parameters for an LG M50 separator, from the paper + + > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) + Electrochimica Acta 425 (2022): 140700 + + and references therein. + # NMC 811 positive electrode parameters + + Parameters for an LG M50 NMC positive electrode, from the paper + + > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) + Electrochimica Acta 425 (2022): 140700 + + and references therein. + # LiPF6 in EC:EMC (3:7 w:w) electrolyte parameters + + Parameters for a LiPF6 in EC:EMC (3:7 w:w) electrolyte, from the paper + + > Johannes Landesfeind and Hubert A. Gasteiger, ["Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery + Electrolytes."](https://iopscience.iop.org/article/10.1149/2.0571912jes) Journal of + the Electrochemical Society 166 (2019): A3079. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) + Electrochimica Acta 425 (2022): 140700 + + and references therein. """ return { @@ -821,9 +997,12 @@ def get_parameter_values(): "Positive current collector conductivity [S.m-1]": 36914000.0, "Negative current collector density [kg.m-3]": 8933.0, "Positive current collector density [kg.m-3]": 2702.0, - "Negative current collector specific heat capacity [J.kg-1.K-1]": copper_heat_capacity_CRC, - "Positive current collector specific heat capacity [J.kg-1.K-1]": aluminium_heat_capacity_CRC, - "Negative current collector thermal conductivity [W.m-1.K-1]": copper_thermal_conductivity_CRC, + "Negative current collector specific heat capacity [J.kg-1.K-1]" + "": copper_heat_capacity_CRC, + "Positive current collector specific heat capacity [J.kg-1.K-1]" + "": aluminium_heat_capacity_CRC, + "Negative current collector thermal conductivity [W.m-1.K-1]" + "": copper_thermal_conductivity_CRC, "Positive current collector thermal conductivity [W.m-1.K-1]": 237.0, "Nominal cell capacity [A.h]": 5.0, "Typical current [A]": 5.0, @@ -831,7 +1010,8 @@ def get_parameter_values(): # negative electrode "Negative electrode conductivity [S.m-1]": 215.0, "Maximum concentration in negative electrode [mol.m-3]": 29583.0, - "Negative electrode diffusivity [m2.s-1]": graphite_LGM50_diffusivity_ORegan2022, + "Negative electrode diffusivity [m2.s-1]" + "": graphite_LGM50_diffusivity_ORegan2022, "Negative electrode OCP [V]": graphite_LGM50_ocp_Chen2020, "Negative electrode porosity": 0.25, "Negative electrode active material volume fraction": 0.75, @@ -842,13 +1022,18 @@ def get_parameter_values(): "Negative electrode electrons in reaction": 1.0, "Negative electrode charge transfer coefficient": 0.5, "Negative electrode double-layer capacity [F.m-2]": 0.2, - "Negative electrode exchange-current density [A.m-2]": graphite_LGM50_electrolyte_exchange_current_density_ORegan2022, + "Negative electrode exchange-current density [A.m-2]" + "": graphite_LGM50_electrolyte_exchange_current_density_ORegan2022, "Negative electrode density [kg.m-3]": 2060.0, - "Negative electrode specific heat capacity [J.kg-1.K-1]": graphite_LGM50_heat_capacity_ORegan2022, - "Negative electrode thermal conductivity [W.m-1.K-1]": graphite_LGM50_thermal_conductivity_ORegan2022, - "Negative electrode OCP entropic change [V.K-1]": graphite_LGM50_entropic_change_ORegan2022, + "Negative electrode specific heat capacity [J.kg-1.K-1]" + "": graphite_LGM50_heat_capacity_ORegan2022, + "Negative electrode thermal conductivity [W.m-1.K-1]" + "": graphite_LGM50_thermal_conductivity_ORegan2022, + "Negative electrode OCP entropic change [V.K-1]" + "": graphite_LGM50_entropic_change_ORegan2022, # positive electrode - "Positive electrode conductivity [S.m-1]": nmc_LGM50_electronic_conductivity_ORegan2022, + "Positive electrode conductivity [S.m-1]" + "": nmc_LGM50_electronic_conductivity_ORegan2022, "Maximum concentration in positive electrode [mol.m-3]": 51765.0, "Positive electrode diffusivity [m2.s-1]": nmc_LGM50_diffusivity_ORegan2022, "Positive electrode OCP [V]": nmc_LGM50_ocp_Chen2020, @@ -861,25 +1046,33 @@ def get_parameter_values(): "Positive electrode electrons in reaction": 1.0, "Positive electrode charge transfer coefficient": 0.5, "Positive electrode double-layer capacity [F.m-2]": 0.2, - "Positive electrode exchange-current density [A.m-2]": nmc_LGM50_electrolyte_exchange_current_density_ORegan2022, + "Positive electrode exchange-current density [A.m-2]" + "": nmc_LGM50_electrolyte_exchange_current_density_ORegan2022, "Positive electrode density [kg.m-3]": 3699.0, - "Positive electrode specific heat capacity [J.kg-1.K-1]": nmc_LGM50_heat_capacity_ORegan2022, - "Positive electrode thermal conductivity [W.m-1.K-1]": nmc_LGM50_thermal_conductivity_ORegan2022, - "Positive electrode OCP entropic change [V.K-1]": nmc_LGM50_entropic_change_ORegan2022, + "Positive electrode specific heat capacity [J.kg-1.K-1]" + "": nmc_LGM50_heat_capacity_ORegan2022, + "Positive electrode thermal conductivity [W.m-1.K-1]" + "": nmc_LGM50_thermal_conductivity_ORegan2022, + "Positive electrode OCP entropic change [V.K-1]" + "": nmc_LGM50_entropic_change_ORegan2022, # separator "Separator porosity": 0.47, "Separator Bruggeman coefficient (electrolyte)": 1.5, "Separator Bruggeman coefficient (electrode)": 1.5, "Separator density [kg.m-3]": 1548.0, - "Separator specific heat capacity [J.kg-1.K-1]": separator_LGM50_heat_capacity_ORegan2022, + "Separator specific heat capacity [J.kg-1.K-1]" + "": separator_LGM50_heat_capacity_ORegan2022, "Separator thermal conductivity [W.m-1.K-1]": 0.3344, # electrolyte "Typical electrolyte concentration [mol.m-3]": 1000.0, "Initial concentration in electrolyte [mol.m-3]": 1000.0, - "Cation transference number": electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019, + "Cation transference number" + "": electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019, "1 + dlnf/dlnc": electrolyte_TDF_EC_EMC_3_7_Landesfeind2019, - "Electrolyte diffusivity [m2.s-1]": electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019, - "Electrolyte conductivity [S.m-1]": electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019, + "Electrolyte diffusivity [m2.s-1]" + "": electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019, + "Electrolyte conductivity [S.m-1]" + "": electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019, # experiment "Reference temperature [K]": 298.15, "Total heat transfer coefficient [W.m-2.K-1]": 10.0, @@ -892,5 +1085,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 13975.0, "Initial temperature [K]": 298.15, # citations - 'citations': ['ORegan2022', 'Chen2020'], - } \ No newline at end of file + "citations": ["ORegan2022", "Chen2020"], + } diff --git a/pybamm/input/parameters/lithium_ion/Prada2013.py b/pybamm/input/parameters/lithium_ion/Prada2013.py index 9c237ac9e0..5a6e7ff029 100644 --- a/pybamm/input/parameters/lithium_ion/Prada2013.py +++ b/pybamm/input/parameters/lithium_ion/Prada2013.py @@ -34,6 +34,7 @@ def graphite_LGM50_ocp_Chen2020(sto): return u_eq + def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( c_e, c_s_surf, c_s_max, T ): @@ -72,6 +73,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def LFP_ocp_ashfar2017(sto): """ Open-circuit potential for LFP @@ -94,6 +96,7 @@ def LFP_ocp_ashfar2017(sto): return k + def LFP_electrolyte_exchange_current_density_kashkooli2017(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between LFP and electrolyte @@ -130,6 +133,7 @@ def LFP_electrolyte_exchange_current_density_kashkooli2017(c_e, c_s_surf, c_s_ma m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def electrolyte_diffusivity_Nyman2008(c_e, T): """ Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -160,6 +164,7 @@ def electrolyte_diffusivity_Nyman2008(c_e, T): return D_c_e + def electrolyte_conductivity_Nyman2008(c_e, T): """ Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data @@ -197,68 +202,68 @@ def electrolyte_conductivity_Nyman2008(c_e, T): def get_parameter_values(): """ # Prada2013 parameter set - # Pouch cell parameters - - Parameters for an A123 LFP cell, from the paper - - > Lain, M. J., Brandon, J., & Kendrick, E. (2019). Design Strategies for High Power - vs. High Energy Lithium Ion Cells. - [Batteries](https://doi.org/10.3390/batteries5040064), 5(4), 64. - # LG M50 Graphite negative electrode parameters - - Parameters for a LG M50 graphite negative electrode, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # Separator parameters - - Parameters for an LG M50 separator, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # Lithium Iron Phosphate positive electrode parameters - - Parameters for an LFP positive electrode, from the paper - + # Pouch cell parameters + + Parameters for an A123 LFP cell, from the paper + + > Lain, M. J., Brandon, J., & Kendrick, E. (2019). Design Strategies for High Power + vs. High Energy Lithium Ion Cells. + [Batteries](https://doi.org/10.3390/batteries5040064), 5(4), 64. + # LG M50 Graphite negative electrode parameters + + Parameters for a LG M50 graphite negative electrode, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # Separator parameters + + Parameters for an LG M50 separator, from the paper + + > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for + Parameterization of Multi-scale Lithium-ion Battery + Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of + the Electrochemical Society 167 (2020): 080534 + + and references therein. + # Lithium Iron Phosphate positive electrode parameters + + Parameters for an LFP positive electrode, from the paper + > Prada, E., Di Domenico, D., Creff, Y., Bernard, J., Sauvant-Moynot, V., & Huet, F. - (2013). A simplified electrochemical and thermal aging model of LiFePO4-graphite - Li-ion batteries: power and capacity fade simulations. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.053304jes), 160(4), A616. - - and references therein. The functions used for OCP and exchange-current density are + (2013). A simplified electrochemical and thermal aging model of LiFePO4-graphite + Li-ion batteries: power and capacity fade simulations. [Journal of The + Electrochemical Society](https://doi.org/10.1149/2.053304jes), 160(4), A616. + + and references therein. The functions used for OCP and exchange-current density are from separate references (documented within the functions), to provide better fit to - data - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and - modelling of the mass transport phenomena in LiPF6-EC-EMC - electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) - Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 4C, using the initial conditions - from the paper - + data + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and + modelling of the mass transport phenomena in LiPF6-EC-EMC + electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) + Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 4C, using the initial conditions + from the paper + > Prada, E., Di Domenico, D., Creff, Y., Bernard, J., Sauvant-Moynot, V., & Huet, F. - (2013). A simplified electrochemical and thermal aging model of LiFePO4-graphite - Li-ion batteries: power and capacity fade simulations. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.053304jes), 160(4), A616. - - and references therein. + (2013). A simplified electrochemical and thermal aging model of LiFePO4-graphite + Li-ion batteries: power and capacity fade simulations. [Journal of The + Electrochemical Society](https://doi.org/10.1149/2.053304jes), 160(4), A616. + + and references therein. """ return { @@ -301,7 +306,8 @@ def get_parameter_values(): "Negative electrode electrons in reaction": 1.0, "Negative electrode charge transfer coefficient": 0.5, "Negative electrode double-layer capacity [F.m-2]": 0.2, - "Negative electrode exchange-current density [A.m-2]": graphite_LGM50_electrolyte_exchange_current_density_Chen2020, + "Negative electrode exchange-current density [A.m-2]" + "": graphite_LGM50_electrolyte_exchange_current_density_Chen2020, "Negative electrode density [kg.m-3]": 1657.0, "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, @@ -324,7 +330,8 @@ def get_parameter_values(): "Positive electrode specific heat capacity [J.kg-1.K-1]": 1100.0, "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, "Positive electrode OCP entropic change [V.K-1]": 0.0, - "Positive electrode exchange-current density [A.m-2]": LFP_electrolyte_exchange_current_density_kashkooli2017, + "Positive electrode exchange-current density [A.m-2]" + "": LFP_electrolyte_exchange_current_density_kashkooli2017, # separator "Separator porosity": 0.47, "Separator Bruggeman coefficient (electrolyte)": 1.5, @@ -350,5 +357,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 35.3766672, "Initial temperature [K]": 298.15, # citations - 'citations': ['Chen2020', 'Lain2019', 'Prada2013'], - } \ No newline at end of file + "citations": ["Chen2020", "Lain2019", "Prada2013"], + } diff --git a/pybamm/input/parameters/lithium_ion/Ramadass2004.py b/pybamm/input/parameters/lithium_ion/Ramadass2004.py index f8c9cc6ef1..7d7fa6cfaf 100644 --- a/pybamm/input/parameters/lithium_ion/Ramadass2004.py +++ b/pybamm/input/parameters/lithium_ion/Ramadass2004.py @@ -29,6 +29,7 @@ def graphite_mcmb2528_diffusivity_Dualfoil1998(sto, T): return D_ref * arrhenius + def graphite_ocp_Ramadass2004(sto): """ Graphite Open Circuit Potential (OCP) as a function of the @@ -53,6 +54,7 @@ def graphite_ocp_Ramadass2004(sto): return u_eq + def graphite_electrolyte_exchange_current_density_Ramadass2004( c_e, c_s_surf, c_s_max, T ): @@ -90,6 +92,7 @@ def graphite_electrolyte_exchange_current_density_Ramadass2004( m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def graphite_entropic_change_Moura2016(sto, c_s_max): """ Graphite entropic change in open circuit potential (OCP) at a temperature of @@ -120,6 +123,7 @@ def graphite_entropic_change_Moura2016(sto, c_s_max): return du_dT + def lico2_diffusivity_Ramadass2004(sto, T): """ LiCo2 diffusivity as a function of stochiometry, in this case the @@ -149,6 +153,7 @@ def lico2_diffusivity_Ramadass2004(sto, T): return D_ref * arrhenius + def lico2_ocp_Ramadass2004(sto): """ Lithium Cobalt Oxide (LiCO2) Open Circuit Potential (OCP) as a a function of the @@ -189,6 +194,7 @@ def lico2_ocp_Ramadass2004(sto): return u_eq + def lico2_electrolyte_exchange_current_density_Ramadass2004(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between lico2 and LiPF6 in @@ -224,6 +230,7 @@ def lico2_electrolyte_exchange_current_density_Ramadass2004(c_e, c_s_surf, c_s_m m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 ) + def lico2_entropic_change_Moura2016(sto, c_s_max): """ Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at @@ -245,16 +252,22 @@ def lico2_entropic_change_Moura2016(sto, c_s_max): sto = stretch * sto du_dT = ( - 0.07645 * (-54.4806 / c_s_max) * ((1.0 / pybamm.cosh(30.834 - 54.4806 * sto)) ** 2) + 0.07645 + * (-54.4806 / c_s_max) + * ((1.0 / pybamm.cosh(30.834 - 54.4806 * sto)) ** 2) + 2.1581 * (-50.294 / c_s_max) * ((pybamm.cosh(52.294 - 50.294 * sto)) ** (-2)) - + 0.14169 * (19.854 / c_s_max) * ((pybamm.cosh(11.0923 - 19.8543 * sto)) ** (-2)) + + 0.14169 + * (19.854 / c_s_max) + * ((pybamm.cosh(11.0923 - 19.8543 * sto)) ** (-2)) - 0.2051 * (5.4888 / c_s_max) * ((pybamm.cosh(1.4684 - 5.4888 * sto)) ** (-2)) - - (0.2531 / 0.1316 / c_s_max) * ((pybamm.cosh((-sto + 0.56478) / 0.1316)) ** (-2)) + - (0.2531 / 0.1316 / c_s_max) + * ((pybamm.cosh((-sto + 0.56478) / 0.1316)) ** (-2)) - (0.02167 / 0.006 / c_s_max) * ((pybamm.cosh((sto - 0.525) / 0.006)) ** (-2)) ) return du_dT + def electrolyte_diffusivity_Ramadass2004(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. @@ -285,6 +298,7 @@ def electrolyte_diffusivity_Ramadass2004(c_e, T): return D_c_e * arrhenius + def electrolyte_conductivity_Ramadass2004(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration. @@ -331,103 +345,103 @@ def electrolyte_conductivity_Ramadass2004(c_e, T): def get_parameter_values(): """ # Ramadass2004 parameter set - # Cell geometry parameters - - Parameters for a lithium Cobalt Oxide positive electrode, from the paper - + # Cell geometry parameters + + Parameters for a lithium Cobalt Oxide positive electrode, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. - Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." - (2004) - > P. Ramadass, Bala Haran, Ralph White, and Branko N. Popov. "Capacity fade of Sony - 18650 cells cycled at elevated temperatures part I." (2002) - - and references therein. - # Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. + Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." + (2004) + > P. Ramadass, Bala Haran, Ralph White, and Branko N. Popov. "Capacity fade of Sony + 18650 cells cycled at elevated temperatures part I." (2002) + + and references therein. + # Graphite negative electrode parameters + + Parameters for a graphite negative electrode, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. Popov.["Development of First Principles Capacity Fade Model for Li-Ion Cells."](http - s://scholarcommons.sc.edu/cgi/viewcontent.cgi?article=1161&context=eche_facpub) - (2004) - - and references therein. - # Separator parameters - - Parameters for the separator from the papers - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery i. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data - are extracted from - - > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and - surface cooling on lithium ion cell performance."" Journal of The Electrochemical - Society, 165.13 (2018): A3169-A3178. - # Lithium Cobalt Oxide positive electrode parameters - - Parameters for a lithium Cobalt Oxide positive electrode, from the paper - + s://scholarcommons.sc.edu/cgi/viewcontent.cgi?article=1161&context=eche_facpub) + (2004) + + and references therein. + # Separator parameters + + Parameters for the separator from the papers + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery i. determination of parameters." Journal of the Electrochemical + Society 162.9 (2015): A1836-A1848. + + > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a + lithium-ion battery II. Model validation." Journal of The Electrochemical Society + 162.9 (2015): A1849-A1857. + + The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data + are extracted from + + > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and + surface cooling on lithium ion cell performance."" Journal of The Electrochemical + Society, 165.13 (2018): A3169-A3178. + # Lithium Cobalt Oxide positive electrode parameters + + Parameters for a lithium Cobalt Oxide positive electrode, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. - Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." - (2004) - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. + Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." + (2004) + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. - Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." - (2004) - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. + Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." + (2004) + + and references therein. + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), + A3693-A3706. + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. + Electrochemical Society, 151(2), A196-A203. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + Note: Ramadass 2004 has mistakes in units and values of SEI parameters, corrected by - Safari 2009. + Safari 2009. """ return { @@ -480,7 +494,8 @@ def get_parameter_values(): # negative electrode "Negative electrode conductivity [S.m-1]": 100.0, "Maximum concentration in negative electrode [mol.m-3]": 30555.0, - "Negative electrode diffusivity [m2.s-1]": graphite_mcmb2528_diffusivity_Dualfoil1998, + "Negative electrode diffusivity [m2.s-1]" + "": graphite_mcmb2528_diffusivity_Dualfoil1998, "Negative electrode OCP [V]": graphite_ocp_Ramadass2004, "Negative electrode porosity": 0.485, "Negative electrode active material volume fraction": 0.49, @@ -491,11 +506,13 @@ def get_parameter_values(): "Negative electrode electrons in reaction": 1.0, "Negative electrode charge transfer coefficient": 0.5, "Negative electrode double-layer capacity [F.m-2]": 0.2, - "Negative electrode exchange-current density [A.m-2]": graphite_electrolyte_exchange_current_density_Ramadass2004, + "Negative electrode exchange-current density [A.m-2]" + "": graphite_electrolyte_exchange_current_density_Ramadass2004, "Negative electrode density [kg.m-3]": 1657.0, "Negative electrode specific heat capacity [J.kg-1.K-1]": 700.0, "Negative electrode thermal conductivity [W.m-1.K-1]": 1.7, - "Negative electrode OCP entropic change [V.K-1]": graphite_entropic_change_Moura2016, + "Negative electrode OCP entropic change [V.K-1]" + "": graphite_entropic_change_Moura2016, # positive electrode "Positive electrode conductivity [S.m-1]": 100.0, "Maximum concentration in positive electrode [mol.m-3]": 51555.0, @@ -510,11 +527,13 @@ def get_parameter_values(): "Positive electrode electrons in reaction": 1.0, "Positive electrode charge transfer coefficient": 0.5, "Positive electrode double-layer capacity [F.m-2]": 0.2, - "Positive electrode exchange-current density [A.m-2]": lico2_electrolyte_exchange_current_density_Ramadass2004, + "Positive electrode exchange-current density [A.m-2]" + "": lico2_electrolyte_exchange_current_density_Ramadass2004, "Positive electrode density [kg.m-3]": 3262.0, "Positive electrode specific heat capacity [J.kg-1.K-1]": 700.0, "Positive electrode thermal conductivity [W.m-1.K-1]": 2.1, - "Positive electrode OCP entropic change [V.K-1]": lico2_entropic_change_Moura2016, + "Positive electrode OCP entropic change [V.K-1]" + "": lico2_entropic_change_Moura2016, # separator "Separator porosity": 0.508, "Separator Bruggeman coefficient (electrolyte)": 1.9804586773134945, @@ -531,8 +550,10 @@ def get_parameter_values(): # experiment "Reference temperature [K]": 298.15, "Ambient temperature [K]": 298.15, - "Negative current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, - "Positive current collector surface heat transfer coefficient [W.m-2.K-1]": 0.0, + "Negative current collector surface heat transfer coefficient [W.m-2.K-1]" + "": 0.0, + "Positive current collector surface heat transfer coefficient [W.m-2.K-1]" + "": 0.0, "Negative tab heat transfer coefficient [W.m-2.K-1]": 10.0, "Positive tab heat transfer coefficient [W.m-2.K-1]": 10.0, "Edge heat transfer coefficient [W.m-2.K-1]": 0.3, @@ -544,5 +565,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 25777.5, "Initial temperature [K]": 298.15, # citations - 'citations': ['Ramadass2004'], - } \ No newline at end of file + "citations": ["Ramadass2004"], + } diff --git a/pybamm/input/parameters/lithium_ion/Xu2019.py b/pybamm/input/parameters/lithium_ion/Xu2019.py index 3cae4e4361..0cc47ae624 100644 --- a/pybamm/input/parameters/lithium_ion/Xu2019.py +++ b/pybamm/input/parameters/lithium_ion/Xu2019.py @@ -31,6 +31,7 @@ def li_metal_electrolyte_exchange_current_density_Xu2019(c_e, c_Li, T): return m_ref * c_Li**0.7 * c_e**0.3 + def nmc_ocp_Xu2019(sto): """ Nickel Managanese Cobalt Oxide (NMC) Open Circuit Potential (OCP) as a @@ -78,6 +79,7 @@ def nmc_ocp_Xu2019(sto): return u_eq + def nmc_electrolyte_exchange_current_density_Xu2019(c_e, c_s_surf, c_s_max, T): """ Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in @@ -107,10 +109,13 @@ def nmc_electrolyte_exchange_current_density_Xu2019(c_e, c_s_surf, c_s_max, T): Exchange-current density [A.m-2] """ # assuming implicit correction of incorrect units from the paper - m_ref = 5.76e-11 * pybamm.constants.F # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = ( + 5.76e-11 * pybamm.constants.F + ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations return m_ref * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 + def electrolyte_diffusivity_Valoen2005(c_e, T): """ Diffusivity of LiPF6 in EC:DMC as a function of ion concentration, from [1] (eqn 14) @@ -144,6 +149,7 @@ def electrolyte_diffusivity_Valoen2005(c_e, T): # note, in the Valoen paper, ln means log10, so its inverse is 10^x return (10 ** (D_0 + D_1 * c_e)) * 1e-4 + def electrolyte_conductivity_Valoen2005(c_e, T): """ Conductivity of LiPF6 in EC:DMC as a function of ion concentration, from [1] @@ -185,87 +191,87 @@ def electrolyte_conductivity_Valoen2005(c_e, T): def get_parameter_values(): """ # Xu2019 parameter set - # Kokam SLPB78205130H cell parameters - - Parameters for a Kokam SLPB78205130H cell, from the paper - - > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + # Kokam SLPB78205130H cell parameters + + Parameters for a Kokam SLPB78205130H cell, from the paper + + > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - and references therein. - # Graphite MCMB 2528 anode parameters - - Parameters for a graphite MCMB 2528 anode, from the paper - - > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + and references therein. + # Graphite MCMB 2528 anode parameters + + Parameters for a graphite MCMB 2528 anode, from the paper + + > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - and references therein. - # Separator parameters - - Parameters for a Celgard 2325 separator, from the paper - - > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + and references therein. + # Separator parameters + + Parameters for a Celgard 2325 separator, from the paper + + > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - and references therein. - # Lithium Cobalt Oxide cathode parameters - - Parameters for a lithium Cobalt Oxide cathode, from the paper - - > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + and references therein. + # Lithium Cobalt Oxide cathode parameters + + Parameters for a lithium Cobalt Oxide cathode, from the paper + + > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > Valøen, Lars Ole, and Jan N. Reimers. "Transport properties of LiPF6-based Li-ion - battery electrolytes." Journal of The Electrochemical Society 152.5 (2005): - A882-A891. [doi: 10.1149/1.1872737](http://dx.doi.org/10.1149/1.1872737) - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + and references therein. + # LiPF6 electrolyte parameters + + Parameters for a LiPF6 electrolyte, from the paper + + > Valøen, Lars Ole, and Jan N. Reimers. "Transport properties of LiPF6-based Li-ion + battery electrolytes." Journal of The Electrochemical Society 152.5 (2005): + A882-A891. [doi: 10.1149/1.1872737](http://dx.doi.org/10.1149/1.1872737) + # 1C discharge from full + + Discharge lithium-ion battery from full charge at 1C, using the initial conditions + from the paper + + > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - and references therein. - # SEI parameters - - Some example parameters for SEI growth from the papers: - - > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). + Experimentally Validated Model of the Apparent Capacity Loss." Journal of The + Electrochemical Society 166.14 (2019): A3456-A3463. + + and references therein. + # SEI parameters + + Some example parameters for SEI growth from the papers: + + > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the - Electrochemical Society, 151(2), A196-A203. - > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for - aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), - A456-A462. - > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of - continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), - 1950-1955. + Electrochemical Society, 151(2), A196-A203. + > Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for + aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), + A456-A462. + > Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of + continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), + 1950-1955. > Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics- - Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The - Electrochemical Society, 156(3), - > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium - plating induced aging of lithium-ion batteries: Transition from linear to nonlinear - aging. Journal of Power Sources, 360, 28-40. - - Note: this parameter set does not claim to be representative of the true parameter - values. Instead these are parameter values that were used to fit SEI models to - observed experimental data in the referenced papers. + Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The + Electrochemical Society, 156(3), + > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium + plating induced aging of lithium-ion batteries: Transition from linear to nonlinear + aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. """ return { @@ -308,7 +314,8 @@ def get_parameter_values(): "Negative electrode cation signed stoichiometry": -1.0, "Negative electrode electrons in reaction": 1.0, "Typical plated lithium concentration [mol.m-3]": 76900.0, - "Exchange-current density for plating [A.m-2]": li_metal_electrolyte_exchange_current_density_Xu2019, + "Exchange-current density for plating [A.m-2]" + "": li_metal_electrolyte_exchange_current_density_Xu2019, "Negative electrode charge transfer coefficient": 0.5, "Negative electrode double-layer capacity [F.m-2]": 0.2, # positive electrode @@ -325,7 +332,8 @@ def get_parameter_values(): "Positive electrode cation signed stoichiometry": -1.0, "Positive electrode electrons in reaction": 1.0, "Positive electrode charge transfer coefficient": 0.5, - "Positive electrode exchange-current density [A.m-2]": nmc_electrolyte_exchange_current_density_Xu2019, + "Positive electrode exchange-current density [A.m-2]" + "": nmc_electrolyte_exchange_current_density_Xu2019, "Positive electrode double-layer capacity [F.m-2]": 0.2, # separator "Separator porosity": 0.39, @@ -349,5 +357,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 4631.0, "Initial temperature [K]": 298.15, # citations - 'citations': ['Xu2019'], - } \ No newline at end of file + "citations": ["Xu2019"], + } diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py index 3f67f6051e..cdc523d75a 100644 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py @@ -29,8 +29,8 @@ def electrolyte_conductivity_base_Landesfeind2019(c_e, T, coeffs): c = c_e / 1000 # mol.m-3 -> mol.l p1, p2, p3, p4, p5, p6 = coeffs A = p1 * (1 + (T - p2)) - B = 1 + p3 * sqrt(c) + p4 * (1 + p5 * exp(1000 / T)) * c - C = 1 + c**4 * (p6 * exp(1000 / T)) + B = 1 + p3 * pybamm.sqrt(c) + p4 * (1 + p5 * pybamm.exp(1000 / T)) * c + C = 1 + c**4 * (p6 * pybamm.exp(1000 / T)) sigma_e = A * c * B / C # mS.cm-1 return sigma_e / 10 @@ -63,9 +63,9 @@ def electrolyte_diffusivity_base_Landesfeind2019(c_e, T, coeffs): """ c = c_e / 1000 # mol.m-3 -> mol.l p1, p2, p3, p4 = coeffs - A = p1 * exp(p2 * c) - B = exp(p3 / T) - C = exp(p4 * c / T) + A = p1 * pybamm.exp(p2 * c) + B = pybamm.exp(p3 / T) + C = pybamm.exp(p4 * c / T) D_e = A * B * C * 1e-10 # m2/s return D_e diff --git a/pybamm/parameters/parameter_values.py b/pybamm/parameters/parameter_values.py index 4becd7e7b2..6efa1a4be5 100644 --- a/pybamm/parameters/parameter_values.py +++ b/pybamm/parameters/parameter_values.py @@ -130,9 +130,13 @@ def __init__(self, values=None, chemistry=None): self._replace_callable_function_parameters = True # save citations + citations = [] if hasattr(self, "citations"): - for citation in self.citations: - pybamm.citations.register(citation) + citations = self.citations + elif "citations" in self._dict_items: + citations = self._dict_items["citations"] + for citation in citations: + pybamm.citations.register(citation) def __getitem__(self, key): return self._dict_items[key] @@ -1044,7 +1048,12 @@ def export_python_script(self, name, path=None): continue # skip this value # add line to the parameter output in the appropriate section - dict_output += f'\n "{k}": {v},' + line_output = f'\n "{k}": {v},' + if len(line_output) > 88: + # this will be split into multiple lines by black + line_output = f'\n "{k}""": {v},' + + dict_output += line_output # save citation info if hasattr(self, "citations"): @@ -1074,7 +1083,14 @@ def export_python_script(self, name, path=None): output = preamble + "\n\n" + output # Add pybamm. to functions that didn't have it in function body before - for funcname in ["Parameter", "exp", "tanh", "cosh", "log10"]: + for funcname in [ + "Parameter", + "exp", + "tanh", + "cosh", + "log10", + "LeadAcidParameters", + ]: # add space or ( before so it doesn't do this for middle-of-word matches output = output.replace(f" {funcname}(", f" pybamm.{funcname}(") output = output.replace(f"({funcname}(", f"(pybamm.{funcname}(") From 4b13ab0c8858ccb09a7da8d226984fc13112b506 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Tue, 4 Oct 2022 17:52:22 -0400 Subject: [PATCH 09/28] #2334 tests --- parameters.py | 4 ---- pybamm/input/parameters/lithium_ion/Ecker2015.py | 8 -------- .../electrolyte_base_Landesfeind2019.py | 10 +++++----- 3 files changed, 5 insertions(+), 17 deletions(-) diff --git a/parameters.py b/parameters.py index a070979fc3..b8b876bf6a 100644 --- a/parameters.py +++ b/parameters.py @@ -1,8 +1,4 @@ import pybamm -import numpy as np -import os -import inspect -from pprint import pformat import subprocess all_parameter_sets = [x for x in dir(pybamm.parameter_sets) if not x.startswith("__")] diff --git a/pybamm/input/parameters/lithium_ion/Ecker2015.py b/pybamm/input/parameters/lithium_ion/Ecker2015.py index 9debec806c..04e0e07232 100644 --- a/pybamm/input/parameters/lithium_ion/Ecker2015.py +++ b/pybamm/input/parameters/lithium_ion/Ecker2015.py @@ -583,12 +583,8 @@ def get_parameter_values(): # negative electrode "Negative electrode conductivity [S.m-1]": 14.0, "Maximum concentration in negative electrode [mol.m-3]": 31920.0, -<<<<<<< HEAD "Measured negative electrode diffusivity [m2.s-1]" "": "[data]measured_graphite_diffusivity_Ecker2015", -======= - "Measured negative electrode diffusivity [m2.s-1]": "[data]measured_graphite_diffusivity_Ecker2015", ->>>>>>> 2a75a8dc349b5e193ae476a9370c172f9bed0d76 "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_Ecker2015, "Measured negative electrode OCP [V]": "[data]graphite_ocp_Ecker2015", "Negative electrode OCP [V]": graphite_ocp_Ecker2015_function, @@ -608,12 +604,8 @@ def get_parameter_values(): # positive electrode "Positive electrode conductivity [S.m-1]": 68.1, "Maximum concentration in positive electrode [mol.m-3]": 48580.0, -<<<<<<< HEAD "Measured positive electrode diffusivity [m2.s-1]" "": "[data]measured_nco_diffusivity_Ecker2015", -======= - "Measured positive electrode diffusivity [m2.s-1]": "[data]measured_nco_diffusivity_Ecker2015", ->>>>>>> 2a75a8dc349b5e193ae476a9370c172f9bed0d76 "Positive electrode diffusivity [m2.s-1]": nco_diffusivity_Ecker2015, "Measured positive electrode OCP [V]": "[data]nco_ocp_Ecker2015", "Positive electrode OCP [V]": nco_ocp_Ecker2015_function, diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py index cdc523d75a..3f67f6051e 100644 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py @@ -29,8 +29,8 @@ def electrolyte_conductivity_base_Landesfeind2019(c_e, T, coeffs): c = c_e / 1000 # mol.m-3 -> mol.l p1, p2, p3, p4, p5, p6 = coeffs A = p1 * (1 + (T - p2)) - B = 1 + p3 * pybamm.sqrt(c) + p4 * (1 + p5 * pybamm.exp(1000 / T)) * c - C = 1 + c**4 * (p6 * pybamm.exp(1000 / T)) + B = 1 + p3 * sqrt(c) + p4 * (1 + p5 * exp(1000 / T)) * c + C = 1 + c**4 * (p6 * exp(1000 / T)) sigma_e = A * c * B / C # mS.cm-1 return sigma_e / 10 @@ -63,9 +63,9 @@ def electrolyte_diffusivity_base_Landesfeind2019(c_e, T, coeffs): """ c = c_e / 1000 # mol.m-3 -> mol.l p1, p2, p3, p4 = coeffs - A = p1 * pybamm.exp(p2 * c) - B = pybamm.exp(p3 / T) - C = pybamm.exp(p4 * c / T) + A = p1 * exp(p2 * c) + B = exp(p3 / T) + C = exp(p4 * c / T) D_e = A * B * C * 1e-10 # m2/s return D_e From aa5d84e1643220a60f95c9a8183ab38cb0f91477 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Wed, 5 Oct 2022 11:10:05 -0400 Subject: [PATCH 10/28] trying to fix coverage issue --- pybamm/parameters/parameter_values.py | 2 +- tests/unit/test_parameters/test_parameter_values.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/pybamm/parameters/parameter_values.py b/pybamm/parameters/parameter_values.py index 6efa1a4be5..f23347fa80 100644 --- a/pybamm/parameters/parameter_values.py +++ b/pybamm/parameters/parameter_values.py @@ -1039,7 +1039,7 @@ def export_python_script(self, name, path=None): self.chemistry[component_group], f"{data_name}.csv", ) - data_file_new = path + f"{data_name}.csv" + data_file_new = os.path.join(path, f"{data_name}.csv") shutil.copyfile(data_file_old, data_file_new) # save data with data tag diff --git a/tests/unit/test_parameters/test_parameter_values.py b/tests/unit/test_parameters/test_parameter_values.py index 1dc50c9c50..60d2dd38c1 100644 --- a/tests/unit/test_parameters/test_parameter_values.py +++ b/tests/unit/test_parameters/test_parameter_values.py @@ -1024,7 +1024,12 @@ def test_export_python_script(self): ) # remove the file - os.remove(os.path.join(pybamm.ABSOLUTE_PATH, "pybamm", path, "Ai2020_test.py")) + for ext in [".py", ".pyc"]: + filename = os.path.join( + pybamm.ABSOLUTE_PATH, "pybamm", path, "Ai2020_test" + ext + ) + if os.path.exists(filename): + os.remove(filename) if __name__ == "__main__": From 62eb4b3141e637c6c79b59c13084677854a9d068 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Wed, 5 Oct 2022 12:04:42 -0400 Subject: [PATCH 11/28] #2334 remove old parameters and clean up readmes --- .../workflows/update_parameter_sets_doc.yml | 42 --- pybamm/CITATIONS.txt | 22 ++ .../input/parameters/lead_acid/Sulzer2019.py | 46 +-- .../cells/BBOXX_Sulzer2019/README.md | 5 - .../cells/BBOXX_Sulzer2019/parameters.csv | 36 --- .../parameters/lead_acid/cells/__init__.py | 0 .../lead_acid/electrolytes/__init__.py | 0 .../sulfuric_acid_Sulzer2019/README.md | 7 - .../sulfuric_acid_Sulzer2019/__init__.py | 0 .../conductivity_Gu1997.py | 26 -- ...darken_thermodynamic_factor_Chapman1968.py | 21 -- .../diffusivity_Gu1997.py | 25 -- .../sulfuric_acid_Sulzer2019/parameters.csv | 29 -- .../viscosity_Chapman1968.py | 18 -- .../1C_discharge_from_full/README.md | 3 - .../1C_discharge_from_full/parameters.csv | 25 -- .../lead_acid/experiments/__init__.py | 0 .../lead_acid/negative_electrodes/__init__.py | 0 .../lead_Sulzer2019/README.md | 7 - .../lead_Sulzer2019/__init__.py | 0 ...ead_exchange_current_density_Sulzer2019.py | 33 --- .../lead_Sulzer2019/lead_ocp_Bode1977.py | 24 -- .../lead_Sulzer2019/parameters.csv | 42 --- .../lead_acid/positive_electrodes/__init__.py | 0 .../lead_dioxide_Sulzer2019/README.md | 7 - .../lead_dioxide_Sulzer2019/__init__.py | 0 ...ide_exchange_current_density_Sulzer2019.py | 39 --- .../lead_dioxide_ocp_Bode1977.py | 24 -- ...gen_exchange_current_density_Sulzer2019.py | 33 --- .../lead_dioxide_Sulzer2019/parameters.csv | 41 --- .../lead_acid/separators/__init__.py | 0 .../separators/agm_Sulzer2019/README.md | 7 - .../separators/agm_Sulzer2019/parameters.csv | 8 - pybamm/input/parameters/lithium_ion/Ai2020.py | 73 +---- .../input/parameters/lithium_ion/Chen2020.py | 61 +--- .../lithium_ion/Chen2020_composite.py | 63 +--- .../input/parameters/lithium_ion/Ecker2015.py | 92 +----- .../parameters/lithium_ion/Marquis2019.py | 57 +--- .../parameters/lithium_ion/Mohtat2020.py | 17 +- .../parameters/lithium_ion/NCA_Kim2011.py | 68 +---- .../input/parameters/lithium_ion/OKane2022.py | 87 +----- .../parameters/lithium_ion/ORegan2022.py | 47 +-- .../input/parameters/lithium_ion/Prada2013.py | 37 +-- .../parameters/lithium_ion/Ramadass2004.py | 68 +---- pybamm/input/parameters/lithium_ion/Xu2019.py | 57 +--- .../lithium_ion/cells/A123_Lain2019/README.md | 5 - .../cells/A123_Lain2019/parameters.csv | 38 --- .../lithium_ion/cells/Kim2011/README.md | 5 - .../lithium_ion/cells/Kim2011/parameters.csv | 40 --- .../cells/LGM50_Chen2020/README.md | 7 - .../cells/LGM50_Chen2020/parameters.csv | 35 --- .../cells/LGM50_ORegan2022/README.md | 7 - .../cells/LGM50_ORegan2022/__init__.py | 0 .../aluminium_heat_capacity_CRC.py | 23 -- .../copper_heat_capacity_CRC.py | 23 -- .../copper_thermal_conductivity_CRC.py | 23 -- .../cells/LGM50_ORegan2022/parameters.csv | 34 --- .../cells/UMBL_Mohtat2020/parameters.csv | 34 --- .../cells/kokam_Ecker2015/README.md | 15 - .../cells/kokam_Ecker2015/parameters.csv | 41 --- .../cells/kokam_Marquis2019/README.md | 7 - .../cells/kokam_Marquis2019/parameters.csv | 40 --- .../cells/li_metal_Xu2019/README.md | 7 - .../cells/li_metal_Xu2019/parameters.csv | 14 - .../cells/sony_Ramadass2004/README.md | 9 - .../cells/sony_Ramadass2004/parameters.csv | 38 --- .../electrolytes/LiPF6_Mohtat2020/__init__.py | 0 .../electrolyte_conductivity_PeymanMPM.py | 33 --- .../electrolyte_diffusivity_PeymanMPM.py | 34 --- .../LiPF6_Mohtat2020/parameters.csv | 11 - .../README.md | 5 - .../__init__.py | 0 ...ctrolyte_TDF_EC_DMC_1_1_Landesfeind2019.py | 32 -- .../electrolyte_base_Landesfeind2019.py | 155 ---------- ...conductivity_EC_DMC_1_1_Landesfeind2019.py | 32 -- ..._diffusivity_EC_DMC_1_1_Landesfeind2019.py | 32 -- ...rence_number_EC_DMC_1_1_Landesfeind2019.py | 44 --- .../parameters.csv | 10 - .../README.md | 5 - .../__init__.py | 0 ...ctrolyte_TDF_EC_EMC_3_7_Landesfeind2019.py | 32 -- .../electrolyte_base_Landesfeind2019.py | 155 ---------- ...conductivity_EC_EMC_3_7_Landesfeind2019.py | 32 -- ..._diffusivity_EC_EMC_3_7_Landesfeind2019.py | 32 -- ...rence_number_EC_EMC_3_7_Landesfeind2019.py | 44 --- .../parameters.csv | 10 - .../README.md | 5 - .../__init__.py | 0 ...rolyte_TDF_EMC_FEC_19_1_Landesfeind2019.py | 32 -- .../electrolyte_base_Landesfeind2019.py | 155 ---------- ...nductivity_EMC_FEC_19_1_Landesfeind2019.py | 32 -- ...iffusivity_EMC_FEC_19_1_Landesfeind2019.py | 32 -- ...nce_number_EMC_FEC_19_1_Landesfeind2019.py | 34 --- .../parameters.csv | 10 - .../electrolytes/lipf6_Ecker2015/README.md | 12 - .../electrolytes/lipf6_Ecker2015/__init__.py | 0 .../electrolyte_conductivity_Ecker2015.py | 44 --- .../electrolyte_diffusivity_Ecker2015.py | 40 --- .../lipf6_Ecker2015/parameters.csv | 10 - .../electrolytes/lipf6_Kim2011/README.md | 7 - .../electrolytes/lipf6_Kim2011/__init__.py | 0 .../electrolyte_conductivity_Kim2011.py | 35 --- .../electrolyte_diffusivity_Kim2011.py | 35 --- .../electrolytes/lipf6_Kim2011/parameters.csv | 10 - .../electrolytes/lipf6_Marquis2019/README.md | 7 - .../lipf6_Marquis2019/__init__.py | 0 .../electrolyte_conductivity_Capiglia1999.py | 40 --- .../electrolyte_diffusivity_Capiglia1999.py | 34 --- .../lipf6_Marquis2019/parameters.csv | 10 - .../electrolytes/lipf6_Nyman2008/README.md | 7 - .../electrolytes/lipf6_Nyman2008/__init__.py | 0 .../electrolyte_conductivity_Nyman2008.py | 31 -- .../electrolyte_diffusivity_Nyman2008.py | 29 -- .../lipf6_Nyman2008/parameters.csv | 10 - .../electrolytes/lipf6_OKane2022/README.md | 7 - .../electrolytes/lipf6_OKane2022/__init__.py | 0 ...rolyte_conductivity_Nyman2008_arrhenius.py | 41 --- ...trolyte_diffusivity_Nyman2008_arrhenius.py | 39 --- .../lipf6_OKane2022/parameters.csv | 10 - .../electrolytes/lipf6_Ramadass2004/README.md | 8 - .../lipf6_Ramadass2004/__init__.py | 0 .../electrolyte_conductivity_Ramadass2004.py | 43 --- .../electrolyte_diffusivity_Ramadass2004.py | 32 -- .../lipf6_Ramadass2004/parameters.csv | 10 - .../electrolytes/lipf6_Valoen2005/README.md | 5 - .../electrolytes/lipf6_Valoen2005/__init__.py | 0 .../electrolyte_conductivity_Valoen2005.py | 35 --- .../electrolyte_diffusivity_Valoen2005.py | 32 -- .../lipf6_Valoen2005/parameters.csv | 10 - .../parameters.csv | 23 -- .../1C_discharge_from_full_Chen2020/README.md | 7 - .../parameters.csv | 18 -- .../README.md | 5 - .../parameters.csv | 24 -- .../1C_discharge_from_full_Kim2011/README.md | 7 - .../parameters.csv | 24 -- .../README.md | 7 - .../parameters.csv | 23 -- .../README.md | 7 - .../parameters.csv | 18 -- .../README.md | 7 - .../parameters.csv | 22 -- .../1C_discharge_from_full_Xu2019/README.md | 7 - .../parameters.csv | 17 -- .../README.md | 7 - .../parameters.csv | 19 -- .../lithium_ion/lithium_platings/__init__.py | 0 .../okane2020_Li_plating/README.md | 7 - .../okane2020_Li_plating/__init__.py | 0 .../okane2020_Li_plating/parameters.csv | 11 - ...ting_exchange_current_density_OKane2020.py | 29 -- ...ping_exchange_current_density_OKane2020.py | 35 --- .../okane2022_Li_plating/README.md | 9 - .../SEI_limited_dead_lithium_OKane2022.py | 30 -- .../okane2022_Li_plating/__init__.py | 0 .../okane2022_Li_plating/parameters.csv | 13 - ...ting_exchange_current_density_OKane2020.py | 29 -- ...ping_exchange_current_density_OKane2020.py | 35 --- .../yang2017_Li_plating/README.md | 5 - .../yang2017_Li_plating/parameters.csv | 9 - .../graphite_Chen2020/README.md | 7 - .../graphite_Chen2020/__init__.py | 0 ...olyte_exchange_current_density_Chen2020.py | 40 --- .../graphite_LGM50_ocp_Chen2020.csv | 243 ---------------- .../graphite_LGM50_ocp_Chen2020.py | 35 --- .../graphite_Chen2020/parameters.csv | 30 -- .../graphite_Chen2020_composite/README.md | 11 - .../graphite_Chen2020_composite/__init__.py | 0 ...olyte_exchange_current_density_Chen2020.py | 40 --- .../graphite_ocp_Enertech_Ai2020.csv | 129 --------- .../parameters.csv | 54 ---- ...olyte_exchange_current_density_Chen2020.py | 43 --- .../silicon_ocp_data_Mark2016.csv | 61 ---- .../silicon_ocp_delithiation_Mark2016.py | 42 --- .../silicon_ocp_lithiation_Mark2016.py | 42 --- .../graphite_Ecker2015/README.md | 16 - .../graphite_Ecker2015/__init__.py | 0 .../graphite_diffusivity_Ecker2015.py | 37 --- ...lyte_exchange_current_density_Ecker2015.py | 48 --- .../graphite_ocp_Ecker2015.csv | 41 --- .../graphite_ocp_Ecker2015_function.py | 62 ---- ...easured_graphite_diffusivity_Ecker2015.csv | 23 -- .../graphite_Ecker2015/parameters.csv | 30 -- .../graphite_Kim2011/README.md | 7 - .../graphite_Kim2011/__init__.py | 0 .../graphite_diffusivity_Kim2011.py | 32 -- ...rolyte_exchange_current_density_Kim2011.py | 53 ---- .../graphite_Kim2011/graphite_ocp_Kim2011.py | 29 -- .../graphite_Kim2011/parameters.csv | 30 -- .../graphite_OKane2022/README.md | 7 - .../graphite_OKane2022/__init__.py | 0 .../graphite_LGM50_diffusivity_Chen2020.py | 34 --- ...olyte_exchange_current_density_Chen2020.py | 41 --- .../graphite_LGM50_ocp_Chen2020.csv | 243 ---------------- .../graphite_LGM50_ocp_Chen2020.py | 37 --- .../graphite_cracking_rate_Ai2020.py | 32 -- .../graphite_volume_change_Ai2020.py | 47 --- .../graphite_OKane2022/parameters.csv | 51 ---- .../graphite_ORegan2022/README.md | 7 - .../graphite_ORegan2022/__init__.py | 0 .../graphite_LGM50_diffusivity_ORegan2022.py | 60 ---- ...yte_exchange_current_density_ORegan2022.py | 47 --- ...phite_LGM50_entropic_change_ORegan2022.csv | 19 -- ...aphite_LGM50_entropic_change_ORegan2022.py | 43 --- ...graphite_LGM50_heat_capacity_ORegan2022.py | 43 --- .../graphite_LGM50_ocp_Chen2020.csv | 243 ---------------- .../graphite_LGM50_ocp_Chen2020.py | 35 --- ...e_LGM50_thermal_conductivity_ORegan2022.py | 25 -- .../graphite_ORegan2022/parameters.csv | 31 -- .../graphite_Ramadass2004/README.md | 8 - .../graphite_Ramadass2004/__init__.py | 0 ...e_exchange_current_density_Ramadass2004.py | 39 --- .../graphite_entropic_change_Moura2016.py | 32 -- ...phite_mcmb2528_diffusivity_Dualfoil1998.py | 30 -- .../graphite_ocp_Ramadass2004.py | 26 -- .../graphite_Ramadass2004/parameters.csv | 30 -- .../graphite_UMBL_Mohtat2020/__init__.py | 0 .../graphite_diffusivity_PeymanMPM.py | 30 -- ...lyte_exchange_current_density_PeymanMPM.py | 37 --- .../graphite_entropic_change_PeymanMPM.py | 28 -- .../graphite_ocp_PeymanMPM.py | 31 -- .../graphite_UMBL_Mohtat2020/parameters.csv | 33 --- .../graphite_mcmb2528_Marquis2019/README.md | 7 - .../graphite_mcmb2528_Marquis2019/__init__.py | 0 ...e_exchange_current_density_Dualfoil1998.py | 37 --- .../graphite_entropic_change_Moura2016.py | 32 -- ...phite_mcmb2528_diffusivity_Dualfoil1998.py | 30 -- .../graphite_mcmb2528_ocp_Dualfoil1998.py | 29 -- .../parameters.csv | 30 -- .../li_metal_Xu2019/README.md | 7 - .../li_metal_Xu2019/__init__.py | 0 ...trolyte_exchange_current_density_Xu2019.py | 32 -- .../li_metal_Xu2019/parameters.csv | 17 -- ..._exchange_current_density_kashkooli2017.py | 38 --- .../LFP_Prada2013/LFP_ocp_ashfar2017.py | 24 -- .../LFP_Prada2013/README.md | 7 - .../LFP_Prada2013/__init__.py | 0 .../LFP_Prada2013/parameters.csv | 33 --- .../LiNiCoO2_Ecker2015/README.md | 16 - .../LiNiCoO2_Ecker2015/__init__.py | 0 .../measured_nco_diffusivity_Ecker2015.csv | 15 - .../nco_diffusivity_Ecker2015.py | 37 --- ...lyte_exchange_current_density_Ecker2015.py | 48 --- .../LiNiCoO2_Ecker2015/nco_ocp_Ecker2015.csv | 43 --- .../nco_ocp_Ecker2015_function.py | 57 ---- .../LiNiCoO2_Ecker2015/parameters.csv | 30 -- .../NMC532_Xu2019/README.md | 7 - .../NMC532_Xu2019/__init__.py | 0 ...trolyte_exchange_current_density_Xu2019.py | 35 --- .../NMC532_Xu2019/nmc_ocp_Xu2019.py | 49 ---- .../NMC532_Xu2019/parameters.csv | 25 -- .../NMC_diffusivity_PeymanMPM.py | 30 -- ...lyte_exchange_current_density_PeymanMPM.py | 35 --- .../NMC_entropic_change_PeymanMPM.py | 39 --- .../NMC_UMBL_Mohtat2020/NMC_ocp_PeymanMPM.py | 35 --- .../NMC_UMBL_Mohtat2020/__init__.py | 0 .../NMC_UMBL_Mohtat2020/parameters.csv | 32 -- .../lico2_Marquis2019/README.md | 7 - .../lico2_Marquis2019/__init__.py | 0 .../lico2_Marquis2019/lico2_data_example.csv | 50 ---- .../lico2_diffusivity_Dualfoil1998.py | 29 -- ...e_exchange_current_density_Dualfoil1998.py | 35 --- .../lico2_entropic_change_Moura2016.py | 33 --- .../lico2_ocp_Dualfoil1998.py | 39 --- .../lico2_Marquis2019/parameters.csv | 30 -- .../lico2_Ramadass2004/README.md | 8 - .../lico2_Ramadass2004/__init__.py | 0 .../lico2_diffusivity_Ramadass2004.py | 31 -- ...e_exchange_current_density_Ramadass2004.py | 37 --- .../lico2_entropic_change_Moura2016.py | 33 --- .../lico2_ocp_Ramadass2004.py | 39 --- .../lico2_Ramadass2004/parameters.csv | 30 -- .../positive_electrodes/nca_Kim2011/README.md | 7 - .../nca_Kim2011/__init__.py | 0 .../nca_Kim2011/nca_diffusivity_Kim2011.py | 31 -- ...rolyte_exchange_current_density_Kim2011.py | 50 ---- .../nca_Kim2011/nca_ocp_Kim2011_data.csv | 75 ----- .../nca_Kim2011/parameters.csv | 30 -- .../nmc_Chen2020/README.md | 7 - .../nmc_Chen2020/__init__.py | 0 ...olyte_exchange_current_density_Chen2020.py | 38 --- .../nmc_Chen2020/nmc_LGM50_ocp_Chen2020.csv | 243 ---------------- .../nmc_Chen2020/nmc_LGM50_ocp_Chen2020.py | 35 --- .../nmc_Chen2020/parameters.csv | 30 -- .../nmc_OKane2022/README.md | 7 - .../nmc_OKane2022/__init__.py | 0 .../nmc_OKane2022/cracking_rate_Ai2020.py | 32 -- .../nmc_LGM50_diffusivity_Chen2020.py | 33 --- ...olyte_exchange_current_density_Chen2020.py | 36 --- .../nmc_OKane2022/nmc_LGM50_ocp_Chen2020.csv | 243 ---------------- .../nmc_OKane2022/nmc_LGM50_ocp_Chen2020.py | 35 --- .../nmc_OKane2022/parameters.csv | 50 ---- .../nmc_OKane2022/volume_change_Ai2020.py | 30 -- .../nmc_ORegan2022/README.md | 7 - .../nmc_ORegan2022/__init__.py | 0 .../nmc_LGM50_diffusivity_ORegan2022.py | 54 ---- ...yte_exchange_current_density_ORegan2022.py | 46 --- ...GM50_electronic_conductivity_ORegan2022.py | 31 -- .../nmc_LGM50_entropic_change_ORegan2022.csv | 19 -- .../nmc_LGM50_entropic_change_ORegan2022.py | 37 --- .../nmc_LGM50_heat_capacity_ORegan2022.py | 43 --- .../nmc_ORegan2022/nmc_LGM50_ocp_Chen2020.csv | 243 ---------------- .../nmc_ORegan2022/nmc_LGM50_ocp_Chen2020.py | 35 --- ...c_LGM50_thermal_conductivity_ORegan2022.py | 25 -- .../nmc_ORegan2022/parameters.csv | 31 -- .../lithium_ion/seis/OKane2022/README.md | 9 - .../lithium_ion/seis/OKane2022/parameters.csv | 28 -- .../parameters/lithium_ion/seis/__init__.py | 0 .../lithium_ion/seis/example/README.md | 11 - .../lithium_ion/seis/example/parameters.csv | 28 -- .../seis/example_composite/README.md | 5 - .../seis/example_composite/parameters.csv | 28 -- .../lithium_ion/seis/ramadass2004/README.md | 8 - .../seis/ramadass2004/parameters.csv | 24 -- .../lithium_ion/seis/yang2017_sei/README.md | 7 - .../seis/yang2017_sei/parameters.csv | 15 - .../separators/separator_Chen2020/README.md | 7 - .../separator_Chen2020/parameters.csv | 8 - .../separators/separator_Ecker2015/README.md | 11 - .../separator_Ecker2015/parameters.csv | 8 - .../separators/separator_Kim2011/README.md | 9 - .../separator_Kim2011/parameters.csv | 8 - .../separator_Marquis2019/README.md | 7 - .../separator_Marquis2019/parameters.csv | 8 - .../separator_Mohtat2020/parameters.csv | 9 - .../separators/separator_ORegan2022/README.md | 7 - .../separator_ORegan2022/__init__.py | 0 .../separator_ORegan2022/parameters.csv | 9 - ...eparator_LGM50_heat_capacity_ORegan2022.py | 42 --- .../separators/separator_Xu2019/README.md | 7 - .../separator_Xu2019/parameters.csv | 6 - pybamm/parameters/parameter_sets.py | 273 +----------------- pybamm/parameters/parameter_values.py | 5 - .../parameters/update_parameter_sets_doc.py | 119 -------- 334 files changed, 76 insertions(+), 9851 deletions(-) delete mode 100644 .github/workflows/update_parameter_sets_doc.yml delete mode 100644 pybamm/input/parameters/lead_acid/cells/BBOXX_Sulzer2019/README.md delete mode 100644 pybamm/input/parameters/lead_acid/cells/BBOXX_Sulzer2019/parameters.csv delete mode 100644 pybamm/input/parameters/lead_acid/cells/__init__.py delete mode 100644 pybamm/input/parameters/lead_acid/electrolytes/__init__.py delete mode 100644 pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/README.md delete mode 100644 pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/__init__.py delete mode 100644 pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/conductivity_Gu1997.py delete mode 100644 pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/darken_thermodynamic_factor_Chapman1968.py delete mode 100644 pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/diffusivity_Gu1997.py delete mode 100644 pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/parameters.csv delete mode 100644 pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/viscosity_Chapman1968.py delete mode 100644 pybamm/input/parameters/lead_acid/experiments/1C_discharge_from_full/README.md delete mode 100644 pybamm/input/parameters/lead_acid/experiments/1C_discharge_from_full/parameters.csv delete mode 100644 pybamm/input/parameters/lead_acid/experiments/__init__.py delete mode 100644 pybamm/input/parameters/lead_acid/negative_electrodes/__init__.py delete mode 100644 pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/README.md delete mode 100644 pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/__init__.py delete mode 100644 pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/lead_exchange_current_density_Sulzer2019.py delete mode 100644 pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/lead_ocp_Bode1977.py delete mode 100644 pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/parameters.csv delete mode 100644 pybamm/input/parameters/lead_acid/positive_electrodes/__init__.py delete mode 100644 pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/README.md delete mode 100644 pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/__init__.py delete mode 100644 pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/lead_dioxide_exchange_current_density_Sulzer2019.py delete mode 100644 pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/lead_dioxide_ocp_Bode1977.py delete mode 100644 pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/oxygen_exchange_current_density_Sulzer2019.py delete mode 100644 pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/parameters.csv delete mode 100644 pybamm/input/parameters/lead_acid/separators/__init__.py delete mode 100644 pybamm/input/parameters/lead_acid/separators/agm_Sulzer2019/README.md delete mode 100644 pybamm/input/parameters/lead_acid/separators/agm_Sulzer2019/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/cells/A123_Lain2019/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/cells/A123_Lain2019/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/cells/Kim2011/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/cells/Kim2011/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/cells/LGM50_Chen2020/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/cells/LGM50_Chen2020/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/aluminium_heat_capacity_CRC.py delete mode 100644 pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/copper_heat_capacity_CRC.py delete mode 100644 pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/copper_thermal_conductivity_CRC.py delete mode 100644 pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/cells/UMBL_Mohtat2020/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/cells/kokam_Ecker2015/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/cells/kokam_Ecker2015/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/cells/kokam_Marquis2019/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/cells/kokam_Marquis2019/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/cells/li_metal_Xu2019/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/cells/li_metal_Xu2019/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/cells/sony_Ramadass2004/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/cells/sony_Ramadass2004/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/LiPF6_Mohtat2020/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/LiPF6_Mohtat2020/electrolyte_conductivity_PeymanMPM.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/LiPF6_Mohtat2020/electrolyte_diffusivity_PeymanMPM.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/LiPF6_Mohtat2020/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_TDF_EC_DMC_1_1_Landesfeind2019.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_conductivity_EC_DMC_1_1_Landesfeind2019.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_diffusivity_EC_DMC_1_1_Landesfeind2019.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_transference_number_EC_DMC_1_1_Landesfeind2019.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_TDF_EC_EMC_3_7_Landesfeind2019.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_base_Landesfeind2019.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_TDF_EMC_FEC_19_1_Landesfeind2019.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_conductivity_EMC_FEC_19_1_Landesfeind2019.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_diffusivity_EMC_FEC_19_1_Landesfeind2019.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_transference_number_EMC_FEC_19_1_Landesfeind2019.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ecker2015/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ecker2015/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ecker2015/electrolyte_conductivity_Ecker2015.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ecker2015/electrolyte_diffusivity_Ecker2015.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ecker2015/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Kim2011/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Kim2011/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Kim2011/electrolyte_conductivity_Kim2011.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Kim2011/electrolyte_diffusivity_Kim2011.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Kim2011/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Marquis2019/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Marquis2019/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Marquis2019/electrolyte_conductivity_Capiglia1999.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Marquis2019/electrolyte_diffusivity_Capiglia1999.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Marquis2019/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Nyman2008/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Nyman2008/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Nyman2008/electrolyte_conductivity_Nyman2008.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Nyman2008/electrolyte_diffusivity_Nyman2008.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Nyman2008/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_OKane2022/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_OKane2022/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_OKane2022/electrolyte_conductivity_Nyman2008_arrhenius.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_OKane2022/electrolyte_diffusivity_Nyman2008_arrhenius.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_OKane2022/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ramadass2004/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ramadass2004/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ramadass2004/electrolyte_conductivity_Ramadass2004.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ramadass2004/electrolyte_diffusivity_Ramadass2004.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ramadass2004/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Valoen2005/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Valoen2005/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Valoen2005/electrolyte_conductivity_Valoen2005.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Valoen2005/electrolyte_diffusivity_Valoen2005.py delete mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Valoen2005/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/experiments/1C_charge_from_empty_Mohtat2020/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Chen2020/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Chen2020/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Ecker2015/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Ecker2015/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Kim2011/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Kim2011/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Marquis2019/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Marquis2019/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_ORegan2022/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_ORegan2022/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Ramadass2004/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Ramadass2004/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Xu2019/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Xu2019/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/experiments/4C_discharge_from_full_Prada2013/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/experiments/4C_discharge_from_full_Prada2013/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/lithium_platings/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/plating_exchange_current_density_OKane2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/stripping_exchange_current_density_OKane2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/SEI_limited_dead_lithium_OKane2022.py delete mode 100644 pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/plating_exchange_current_density_OKane2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/stripping_exchange_current_density_OKane2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/lithium_platings/yang2017_Li_plating/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/lithium_platings/yang2017_Li_plating/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/graphite_LGM50_electrolyte_exchange_current_density_Chen2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/graphite_LGM50_ocp_Chen2020.csv delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/graphite_LGM50_ocp_Chen2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/graphite_LGM50_electrolyte_exchange_current_density_Chen2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/graphite_ocp_Enertech_Ai2020.csv delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/silicon_LGM50_electrolyte_exchange_current_density_Chen2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/silicon_ocp_data_Mark2016.csv delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/silicon_ocp_delithiation_Mark2016.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/silicon_ocp_lithiation_Mark2016.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/graphite_diffusivity_Ecker2015.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/graphite_electrolyte_exchange_current_density_Ecker2015.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/graphite_ocp_Ecker2015.csv delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/graphite_ocp_Ecker2015_function.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/measured_graphite_diffusivity_Ecker2015.csv delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/graphite_diffusivity_Kim2011.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/graphite_electrolyte_exchange_current_density_Kim2011.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/graphite_ocp_Kim2011.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_LGM50_diffusivity_Chen2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_LGM50_electrolyte_exchange_current_density_Chen2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_LGM50_ocp_Chen2020.csv delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_LGM50_ocp_Chen2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_cracking_rate_Ai2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_volume_change_Ai2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_diffusivity_ORegan2022.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_electrolyte_exchange_current_density_ORegan2022.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_entropic_change_ORegan2022.csv delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_entropic_change_ORegan2022.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_heat_capacity_ORegan2022.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_ocp_Chen2020.csv delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_ocp_Chen2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_thermal_conductivity_ORegan2022.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/graphite_electrolyte_exchange_current_density_Ramadass2004.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/graphite_entropic_change_Moura2016.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/graphite_mcmb2528_diffusivity_Dualfoil1998.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/graphite_ocp_Ramadass2004.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/graphite_diffusivity_PeymanMPM.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/graphite_electrolyte_exchange_current_density_PeymanMPM.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/graphite_entropic_change_PeymanMPM.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/graphite_ocp_PeymanMPM.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/graphite_electrolyte_exchange_current_density_Dualfoil1998.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/graphite_entropic_change_Moura2016.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/graphite_mcmb2528_diffusivity_Dualfoil1998.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/graphite_mcmb2528_ocp_Dualfoil1998.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/li_metal_Xu2019/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/li_metal_Xu2019/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/li_metal_Xu2019/li_metal_electrolyte_exchange_current_density_Xu2019.py delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/li_metal_Xu2019/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/LFP_Prada2013/LFP_electrolyte_exchange_current_density_kashkooli2017.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/LFP_Prada2013/LFP_ocp_ashfar2017.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/LFP_Prada2013/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/LFP_Prada2013/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/LFP_Prada2013/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/measured_nco_diffusivity_Ecker2015.csv delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/nco_diffusivity_Ecker2015.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/nco_electrolyte_exchange_current_density_Ecker2015.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/nco_ocp_Ecker2015.csv delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/nco_ocp_Ecker2015_function.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/NMC532_Xu2019/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/NMC532_Xu2019/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/NMC532_Xu2019/nmc_electrolyte_exchange_current_density_Xu2019.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/NMC532_Xu2019/nmc_ocp_Xu2019.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/NMC532_Xu2019/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/NMC_diffusivity_PeymanMPM.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/NMC_electrolyte_exchange_current_density_PeymanMPM.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/NMC_entropic_change_PeymanMPM.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/NMC_ocp_PeymanMPM.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/lico2_data_example.csv delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/lico2_diffusivity_Dualfoil1998.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/lico2_electrolyte_exchange_current_density_Dualfoil1998.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/lico2_entropic_change_Moura2016.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/lico2_ocp_Dualfoil1998.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/lico2_diffusivity_Ramadass2004.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/lico2_electrolyte_exchange_current_density_Ramadass2004.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/lico2_entropic_change_Moura2016.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/lico2_ocp_Ramadass2004.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/nca_diffusivity_Kim2011.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/nca_electrolyte_exchange_current_density_Kim2011.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/nca_ocp_Kim2011_data.csv delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/nmc_LGM50_electrolyte_exchange_current_density_Chen2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/nmc_LGM50_ocp_Chen2020.csv delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/nmc_LGM50_ocp_Chen2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/cracking_rate_Ai2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/nmc_LGM50_diffusivity_Chen2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/nmc_LGM50_electrolyte_exchange_current_density_Chen2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/nmc_LGM50_ocp_Chen2020.csv delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/nmc_LGM50_ocp_Chen2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/volume_change_Ai2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_diffusivity_ORegan2022.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_electrolyte_exchange_current_density_ORegan2022.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_electronic_conductivity_ORegan2022.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_entropic_change_ORegan2022.csv delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_entropic_change_ORegan2022.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_heat_capacity_ORegan2022.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_ocp_Chen2020.csv delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_ocp_Chen2020.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_thermal_conductivity_ORegan2022.py delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/seis/OKane2022/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/seis/OKane2022/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/seis/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/seis/example/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/seis/example/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/seis/example_composite/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/seis/example_composite/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/seis/ramadass2004/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/seis/ramadass2004/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/seis/yang2017_sei/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/seis/yang2017_sei/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/separators/separator_Chen2020/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/separators/separator_Chen2020/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/separators/separator_Ecker2015/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/separators/separator_Ecker2015/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/separators/separator_Kim2011/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/separators/separator_Kim2011/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/separators/separator_Marquis2019/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/separators/separator_Marquis2019/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/separators/separator_Mohtat2020/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/separators/separator_ORegan2022/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/separators/separator_ORegan2022/__init__.py delete mode 100644 pybamm/input/parameters/lithium_ion/separators/separator_ORegan2022/parameters.csv delete mode 100644 pybamm/input/parameters/lithium_ion/separators/separator_ORegan2022/separator_LGM50_heat_capacity_ORegan2022.py delete mode 100644 pybamm/input/parameters/lithium_ion/separators/separator_Xu2019/README.md delete mode 100644 pybamm/input/parameters/lithium_ion/separators/separator_Xu2019/parameters.csv delete mode 100644 pybamm/parameters/update_parameter_sets_doc.py diff --git a/.github/workflows/update_parameter_sets_doc.yml b/.github/workflows/update_parameter_sets_doc.yml deleted file mode 100644 index 04497a5ce0..0000000000 --- a/.github/workflows/update_parameter_sets_doc.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Update parameter_sets.py docstring - -on: - push: - branches: - - develop - paths: - - pybamm/parameters/parameter_sets.py - - pybamm/CITATIONS.txt - -jobs: - build: - runs-on: ubuntu-latest - strategy: - matrix: - python-version: [3.8] - - steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install wheel - pip install --editable . - pip install pybtex - - name: Update docstring - run: python pybamm/parameters/update_parameter_sets_doc.py - - name: Create Pull Request - uses: peter-evans/create-pull-request@v3 - with: - delete-branch: true - branch-suffix: short-commit-hash - commit-message: update parameter_sets docstring - title: Update parameter_sets.py docstring - body: | - Update docstring of parameter_sets.py - - Auto-generated pull request diff --git a/pybamm/CITATIONS.txt b/pybamm/CITATIONS.txt index 317cf7b2d9..831f6cbd0e 100644 --- a/pybamm/CITATIONS.txt +++ b/pybamm/CITATIONS.txt @@ -306,6 +306,17 @@ publisher={IOP Publishing} } +@article{Nyman2008, + title={Electrochemical characterisation and modelling of the mass transport phenomena in LiPF6--EC--EMC electrolyte}, + author={Nyman, Andreas and Behm, M{\aa}rten and Lindbergh, G{\"o}ran}, + journal={Electrochimica Acta}, + volume={53}, + number={22}, + pages={6356--6365}, + year={2008}, + publisher={Elsevier} +} + @article{OKane2020, doi = {10.1149/1945-7111/ab90ac}, url = {https://doi.org/10.1149/1945-7111/ab90ac}, @@ -473,6 +484,17 @@ doi = {10.1137/20M1336898}, } +@article{Valoen2005, + title={Transport properties of LiPF6-based Li-ion battery electrolytes}, + author={Val{\o}en, Lars Ole and Reimers, Jan N}, + journal={Journal of The Electrochemical Society}, + volume={152}, + number={5}, + pages={A882}, + year={2005}, + publisher={IOP Publishing} +} + @article{Virtanen2020, title = {{SciPy 1.0: fundamental algorithms for scientific computing in Python}}, author = {Virtanen, Pauli and Gommers, Ralf and Oliphant, Travis E. and Haberland, Matt and Reddy, Tyler and Cournapeau, David and Burovski, Evgeni and Peterson, Pearu and Weckesser, Warren and Bright, Jonathan and others}, diff --git a/pybamm/input/parameters/lead_acid/Sulzer2019.py b/pybamm/input/parameters/lead_acid/Sulzer2019.py index 815575f67f..e10958fe91 100644 --- a/pybamm/input/parameters/lead_acid/Sulzer2019.py +++ b/pybamm/input/parameters/lead_acid/Sulzer2019.py @@ -223,48 +223,7 @@ def viscosity_Chapman1968(c_e): # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ - # Sulzer2019 parameter set - # BBOXX cell parameters - - Cell-specific parameters for BBOXX lead-acid cells, from the paper - - > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster - lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - # Lead negative electrode parameters - - Parameters for a lead negative electrode, from the paper - - > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster - lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - - and references therein. - # AGM separator parameters - - Parameters for an Absorbent Glass Mat (AGM) separator, from the paper - - > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster - lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - - and references therein. - # Lead-dioxide positive electrode parameters - - Parameters for a lead-dioxide positive electrode, from the paper - - > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster - lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - - and references therein. - # Sulfuric acid electrolyte parameters - - Parameters for a sulfuric acid electrolyte, from the paper + Parameters for BBOXX lead-acid cells, from the paper > V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” @@ -272,9 +231,6 @@ def get_parameter_values(): 166(12), 2363 (2019). and references therein. - # 1C discharge from full - - Discharge lead-acid battery from full charge at 1C. """ return { diff --git a/pybamm/input/parameters/lead_acid/cells/BBOXX_Sulzer2019/README.md b/pybamm/input/parameters/lead_acid/cells/BBOXX_Sulzer2019/README.md deleted file mode 100644 index 5544bc0ca9..0000000000 --- a/pybamm/input/parameters/lead_acid/cells/BBOXX_Sulzer2019/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# BBOXX cell parameters - -Cell-specific parameters for BBOXX lead-acid cells, from the paper - -> V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), 166(12), 2363 (2019). diff --git a/pybamm/input/parameters/lead_acid/cells/BBOXX_Sulzer2019/parameters.csv b/pybamm/input/parameters/lead_acid/cells/BBOXX_Sulzer2019/parameters.csv deleted file mode 100644 index ad0b870d6b..0000000000 --- a/pybamm/input/parameters/lead_acid/cells/BBOXX_Sulzer2019/parameters.csv +++ /dev/null @@ -1,36 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Macroscale geometry,,, -Negative current collector thickness [m],0,, -Negative electrode thickness [m],0.0009,Manufacturer, -Separator thickness [m],0.0015,Manufacturer, -Positive electrode thickness [m],0.00125,Manufacturer, -Positive current collector thickness [m],0,, -Electrode height [m],0.114,Manufacturer, -Electrode width [m],0.065,Manufacturer, -Negative tab width [m],0.04,,Estimated value -Negative tab centre y-coordinate [m],0.06,,Estimated value -Negative tab centre z-coordinate [m],0.114,Tab at top, -Positive tab width [m],0.04,,Estimated value -Positive tab centre y-coordinate [m],0.147,,Estimated value -Positive tab centre z-coordinate [m],0.114,Tab at top, -Cell cooling surface area [m2],1.54E-1,, -Cell volume [m3],2.70E-4,, -,,, -# Electrical,,, -Nominal cell capacity [A.h],17,Manufacturer, -Typical current [A],1,, -Current function [A],1,default current function, -,,, -# Density,,, -Negative current collector density [kg.m-3],11300," same as electrode", -Positive current collector density [kg.m-3],9375,same as electrode, -,,, -# Specific heat capacity,,, -Negative current collector specific heat capacity [J.kg-1.K-1],130,CRC Handbook of Chemistry and Physics, -Positive current collector specific heat capacity [J.kg-1.K-1],256,NIST Chemistry WebBook SRD69, -,,, -# Thermal conductivity,,, -Negative current collector thermal conductivity [W.m-1.K-1],35,CRC Handbook of Chemistry and Physics, -Positive current collector thermal conductivity [W.m-1.K-1],35,assume same as lead, \ No newline at end of file diff --git a/pybamm/input/parameters/lead_acid/cells/__init__.py b/pybamm/input/parameters/lead_acid/cells/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lead_acid/electrolytes/__init__.py b/pybamm/input/parameters/lead_acid/electrolytes/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/README.md b/pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/README.md deleted file mode 100644 index e51d2f431e..0000000000 --- a/pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Sulfuric acid electrolyte parameters - -Parameters for a sulfuric acid electrolyte, from the paper - -> V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), 166(12), 2363 (2019). - -and references therein. diff --git a/pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/__init__.py b/pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/conductivity_Gu1997.py b/pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/conductivity_Gu1997.py deleted file mode 100644 index a5803c2e49..0000000000 --- a/pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/conductivity_Gu1997.py +++ /dev/null @@ -1,26 +0,0 @@ -# -# Sulfuric acid conductivity -# -from pybamm import exp - - -def conductivity_Gu1997(c_e): - """ - Dimensional conductivity of sulfuric acid [S.m-1], from [1]_ citing [2]_ and - agreeing with data in [3]_, as a function of the electrolyte concentration - c_e [mol.m-3]. - - References - ---------- - .. [1] WB Gu, CY Wang, and BY Liaw. Numerical modeling of coupled electrochemical - and transport processes in lead-acid batteries. Journal of The - Electrochemical Society, 144(6):2053–2061, 1997. - .. [2] WH Tiedemann and J Newman. Battery design and optimization. Journal of - Electrochemical Society, Softbound Proceeding Series, Princeton, New York, - 79(1):23, 1979. - .. [3] TW Chapman and J Newman. Compilation of selected thermodynamic and transport - properties of binary electrolytes in aqueous solution. Technical report, - California Univ., Berkeley. Lawrence Radiation Lab., 1968. - - """ - return c_e * exp(6.23 - 1.34e-4 * c_e - 1.61e-8 * c_e**2) * 1e-4 diff --git a/pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/darken_thermodynamic_factor_Chapman1968.py b/pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/darken_thermodynamic_factor_Chapman1968.py deleted file mode 100644 index 27adc99b11..0000000000 --- a/pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/darken_thermodynamic_factor_Chapman1968.py +++ /dev/null @@ -1,21 +0,0 @@ -# -# Darken thermodynamic factor of sulfuric acid -# - - -def darken_thermodynamic_factor_Chapman1968(c_e): - """ - Dimensional Darken thermodynamic factor of sulfuric acid, from data in - [1, 2]_, as a function of the electrolyte concentration c_e [mol.m-3]. - - References - ---------- - .. [1] TW Chapman and J Newman. Compilation of selected thermodynamic and transport - properties of binary electrolytes in aqueous solution. Technical report, - California Univ., Berkeley. Lawrence Radiation Lab., 1968. - .. [2] KS Pitzer, RN Roy, and LF Silvester. Thermodynamics of electrolytes. 7. - sulfuric acid. Journal of the American Chemical Society, 99(15):4930–4936, - 1977. - - """ - return 0.49 + 4.1e-4 * c_e diff --git a/pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/diffusivity_Gu1997.py b/pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/diffusivity_Gu1997.py deleted file mode 100644 index 1ff0743bdb..0000000000 --- a/pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/diffusivity_Gu1997.py +++ /dev/null @@ -1,25 +0,0 @@ -# -# Sulfuric acid diffusivity -# - - -def diffusivity_Gu1997(c_e): - """ - Dimensional Fickian diffusivity of sulfuric acid [m2.s-1], from [1]_ citing [2]_ - and agreeing with data in [3]_, as a function of the electrolyte concentration - c_e [mol.m-3]. - - References - ---------- - .. [1] WB Gu, CY Wang, and BY Liaw. Numerical modeling of coupled electrochemical - and transport processes in lead-acid batteries. Journal of The - Electrochemical Society, 144(6):2053–2061, 1997. - .. [2] WH Tiedemann and J Newman. Battery design and optimization. Journal of - Electrochemical Society, Softbound Proceeding Series, Princeton, New York, - 79(1):23, 1979. - .. [3] TW Chapman and J Newman. Compilation of selected thermodynamic and transport - properties of binary electrolytes in aqueous solution. Technical report, - California Univ., Berkeley. Lawrence Radiation Lab., 1968. - - """ - return (1.75 + 260e-6 * c_e) * 1e-9 diff --git a/pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/parameters.csv b/pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/parameters.csv deleted file mode 100644 index 3336a7fcc2..0000000000 --- a/pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/parameters.csv +++ /dev/null @@ -1,29 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrolyte properties,,, -Typical electrolyte concentration [mol.m-3],5650,, -Cation transference number,0.7,, -1 + dlnf/dlnc,1,, -Partial molar volume of water [m3.mol-1],1.75E-05,, -Partial molar volume of anions [m3.mol-1],3.15E-05,, -Partial molar volume of cations [m3.mol-1],1.35E-05,, -Cation stoichiometry,1,,Hydrogen cations -Anion stoichiometry,1,,Hydrogen sulfate anions -Molar mass of water [kg.mol-1],0.01801,, -Molar mass of cations [kg.mol-1],0.001,lide1992crc,Hydrogen cations -Molar mass of anions [kg.mol-1],0.097,lide1992crc,Hydrogen sulfate anions -Volume change factor,1,,factor to artificially control how much big the volume changes are -Electrolyte conductivity [S.m-1],[function]conductivity_Gu1997,, -Darken thermodynamic factor,[function]darken_thermodynamic_factor_Chapman1968,, -Electrolyte diffusivity [m2.s-1],[function]diffusivity_Gu1997,, -Electrolyte viscosity [kg.m-1.s-1],[function]viscosity_Chapman1968,, -,,, -# Other species properties,,, -Oxygen diffusivity [m2.s-1],2.1e-9,cussler2009diffusion -Typical oxygen concentration [mol.m-3],1000,, -Hydrogen diffusivity [m2.s-1],4.5e-9,cussler2009diffusion -Partial molar volume of oxygen molecules [m3.mol-1],3.21E-5,zhou2001partial, -Partial molar volume of hydrogen molecules [m3.mol-1],2.31E-5,zhou2001partial, -Molar mass of oxygen molecules [kg.mol-1],0.032,lide1992crc, -Molar mass of hydrogen molecules [kg.mol-1],0.002,lide1992crc, diff --git a/pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/viscosity_Chapman1968.py b/pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/viscosity_Chapman1968.py deleted file mode 100644 index b63898cb43..0000000000 --- a/pybamm/input/parameters/lead_acid/electrolytes/sulfuric_acid_Sulzer2019/viscosity_Chapman1968.py +++ /dev/null @@ -1,18 +0,0 @@ -# -# Sulfuric acid viscosity -# - - -def viscosity_Chapman1968(c_e): - """ - Dimensional viscosity of sulfuric acid [kg.m-1.s-1], from data in [1]_, as a - function of the electrolyte concentration c_e [mol.m-3]. - - References - ---------- - .. [1] TW Chapman and J Newman. Compilation of selected thermodynamic and transport - properties of binary electrolytes in aqueous solution. Technical report, - California Univ., Berkeley. Lawrence Radiation Lab., 1968. - - """ - return 0.89e-3 + 1.11e-7 * c_e + 3.29e-11 * c_e**2 diff --git a/pybamm/input/parameters/lead_acid/experiments/1C_discharge_from_full/README.md b/pybamm/input/parameters/lead_acid/experiments/1C_discharge_from_full/README.md deleted file mode 100644 index dc304345f2..0000000000 --- a/pybamm/input/parameters/lead_acid/experiments/1C_discharge_from_full/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# 1C discharge from full - -Discharge lead-acid battery from full charge at 1C. diff --git a/pybamm/input/parameters/lead_acid/experiments/1C_discharge_from_full/parameters.csv b/pybamm/input/parameters/lead_acid/experiments/1C_discharge_from_full/parameters.csv deleted file mode 100644 index 83f1871487..0000000000 --- a/pybamm/input/parameters/lead_acid/experiments/1C_discharge_from_full/parameters.csv +++ /dev/null @@ -1,25 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Temperature,,, -Reference temperature [K],294.85,Room temperature, -Maximum temperature [K],333.15,, -Ambient temperature [K], 294.85,, -Negative current collector surface heat transfer coefficient [W.m-2.K-1],0,, -Positive current collector surface heat transfer coefficient [W.m-2.K-1],0,, -Negative tab heat transfer coefficient [W.m-2.K-1],10,, -Positive tab heat transfer coefficient [W.m-2.K-1],10,, -Total heat transfer coefficient [W.m-2.K-1],10,, -Edge heat transfer coefficient [W.m-2.K-1],0.3,, - -,,, -# Electrical -Number of electrodes connected in parallel to make a cell,8,Manufacturer, -Number of cells connected in series to make a battery,6,Manufacturer, -Lower voltage cut-off [V],1.75,10.5V across 6-cell battery, -Upper voltage cut-off [V],2.42,14.5V across 6-cell battery, -,,, -# Initial conditions -Initial State of Charge,1,-, -Initial oxygen concentration [mol.m-3],0,, -Initial temperature [K],294.85,Room temperature, diff --git a/pybamm/input/parameters/lead_acid/experiments/__init__.py b/pybamm/input/parameters/lead_acid/experiments/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lead_acid/negative_electrodes/__init__.py b/pybamm/input/parameters/lead_acid/negative_electrodes/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/README.md b/pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/README.md deleted file mode 100644 index f597e7da38..0000000000 --- a/pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Lead negative electrode parameters - -Parameters for a lead negative electrode, from the paper - -> V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), 166(12), 2363 (2019). - -and references therein. diff --git a/pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/__init__.py b/pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/lead_exchange_current_density_Sulzer2019.py b/pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/lead_exchange_current_density_Sulzer2019.py deleted file mode 100644 index 601e362031..0000000000 --- a/pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/lead_exchange_current_density_Sulzer2019.py +++ /dev/null @@ -1,33 +0,0 @@ -from pybamm import Parameter - - -def lead_exchange_current_density_Sulzer2019(c_e, T): - """ - Dimensional exchange-current density in the negative (lead) electrode, from [1]_ - - References - ---------- - .. [1] V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, - “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical - model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - - """ - j0_ref = 0.06 # srinivasan2003mathematical - c_e_typ = Parameter("Typical electrolyte concentration [mol.m-3]") - j0 = j0_ref * (c_e / c_e_typ) - - return j0 diff --git a/pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/lead_ocp_Bode1977.py b/pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/lead_ocp_Bode1977.py deleted file mode 100644 index 024d7fc9e2..0000000000 --- a/pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/lead_ocp_Bode1977.py +++ /dev/null @@ -1,24 +0,0 @@ -# -# Open-circuit voltage in the negative (lead) electrode -# -from pybamm import log10 - - -def lead_ocp_Bode1977(m): - """ - Dimensional open-circuit voltage in the negative (lead) electrode [V], from [1]_, - as a function of the molar mass m [mol.kg-1]. - - References - ---------- - .. [1] H Bode. Lead-acid batteries. John Wiley and Sons, Inc., New York, NY, 1977. - - """ - U = ( - -0.294 - - 0.074 * log10(m) - - 0.030 * log10(m) ** 2 - - 0.031 * log10(m) ** 3 - - 0.012 * log10(m) ** 4 - ) - return U diff --git a/pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/parameters.csv b/pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/parameters.csv deleted file mode 100644 index d742c961e6..0000000000 --- a/pybamm/input/parameters/lead_acid/negative_electrodes/lead_Sulzer2019/parameters.csv +++ /dev/null @@ -1,42 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrode properties,,, -Negative electrode conductivity [S.m-1],4800000,,Lead -Negative electrode pore size [m],1E-07,, -Maximum porosity of negative electrode,0.53,, -Molar volume of lead [m3.mol-1],1.82539682539683E-05,,Calculated as 207e-3 / 11.34e3 -Negative electrode volumetric capacity [C.m-3],3.473e9,bernardi1995mathematical, -Negative electrode open-circuit potential [V],[function]lead_ocp_Bode1977,, -,,, -# Microstructure,,, -Negative electrode surface area to volume ratio [m-1],2300000,, -Negative electrode Bruggeman coefficient (electrolyte),1.5,, -Negative electrode Bruggeman coefficient (electrode),1.5,, -Negative electrode morphological parameter,0.6,srinivasan2003mathematical, -Negative electrode capacity [C.m-3],3473000000,, -,,, -# Interfacial reactions,,, -Negative electrode cation signed stoichiometry,1,, -Negative electrode electrons in reaction,2,, -Negative electrode exchange-current density [A.m-2],[function]lead_exchange_current_density_Sulzer2019,, -Signed stoichiometry of cations (oxygen reaction),4,, -Signed stoichiometry of water (oxygen reaction),-1,, -Signed stoichiometry of oxygen (oxygen reaction),1,, -Electrons in oxygen reaction,4,, -Negative electrode reference exchange-current density (oxygen) [A.m-2],2.5E-32,srinivasan2003mathematical, -Reference oxygen molecule concentration [mol.m-3],1000,srinivasan2003mathematical, -Oxygen reference OCP vs SHE [V],1.229,srinivasan2003mathematical, -Signed stoichiometry of cations (hydrogen reaction),2,, -Signed stoichiometry of hydrogen (hydrogen reaction),-1,, -Electrons in hydrogen reaction,2,, -Negative electrode reference exchange-current density (hydrogen) [A.m-2],1.56E-11,srinivasan2003mathematical, -Hydrogen reference OCP vs SHE [V],0,srinivasan2003mathematical, -Negative electrode double-layer capacity [F.m-2],0.2,, -,,, -# Density,,, -Negative electrode density [kg.m-3],11300,CRC Handbook of Chemistry and Physics, -,,, -# Thermal parameters,,, -Negative electrode specific heat capacity [J.kg-1.K-1],130,CRC Handbook of Chemistry and Physics, -Negative electrode thermal conductivity [W.m-1.K-1],35,CRC Handbook of Chemistry and Physics, diff --git a/pybamm/input/parameters/lead_acid/positive_electrodes/__init__.py b/pybamm/input/parameters/lead_acid/positive_electrodes/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/README.md b/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/README.md deleted file mode 100644 index 752e3e7cee..0000000000 --- a/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Lead-dioxide positive electrode parameters - -Parameters for a lead-dioxide positive electrode, from the paper - -> V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), 166(12), 2363 (2019). - -and references therein. diff --git a/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/__init__.py b/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/lead_dioxide_exchange_current_density_Sulzer2019.py b/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/lead_dioxide_exchange_current_density_Sulzer2019.py deleted file mode 100644 index a87f16eaff..0000000000 --- a/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/lead_dioxide_exchange_current_density_Sulzer2019.py +++ /dev/null @@ -1,39 +0,0 @@ -from pybamm import LeadAcidParameters - - -def lead_dioxide_exchange_current_density_Sulzer2019(c_e, T): - """ - Dimensional exchange-current density in the positive electrode, from [1]_ - - References - ---------- - .. [1] V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, - “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical - model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - - """ - c_ox = 0 - c_hy = 0 - param = LeadAcidParameters() - c_w_dim = (1 - c_e * param.V_e - c_ox * param.V_ox - c_hy * param.V_hy) / param.V_w - c_w_ref = (1 - param.c_e_typ * param.V_e) / param.V_w - c_w = c_w_dim / c_w_ref - - j0_ref = 0.004 # srinivasan2003mathematical - j0 = j0_ref * (c_e / param.c_e_typ) ** 2 * c_w - - return j0 diff --git a/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/lead_dioxide_ocp_Bode1977.py b/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/lead_dioxide_ocp_Bode1977.py deleted file mode 100644 index 4240588d81..0000000000 --- a/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/lead_dioxide_ocp_Bode1977.py +++ /dev/null @@ -1,24 +0,0 @@ -# -# Open-circuit voltage in the positive (lead-dioxide) electrode -# -from pybamm import log10 - - -def lead_dioxide_ocp_Bode1977(m): - """ - Dimensional open-circuit voltage in the positive (lead-dioxide) electrode [V], - from [1]_, as a function of the molar mass m [mol.kg-1]. - - References - ---------- - .. [1] H Bode. Lead-acid batteries. John Wiley and Sons, Inc., New York, NY, 1977. - - """ - U = ( - 1.628 - + 0.074 * log10(m) - + 0.033 * log10(m) ** 2 - + 0.043 * log10(m) ** 3 - + 0.022 * log10(m) ** 4 - ) - return U diff --git a/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/oxygen_exchange_current_density_Sulzer2019.py b/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/oxygen_exchange_current_density_Sulzer2019.py deleted file mode 100644 index 5152126110..0000000000 --- a/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/oxygen_exchange_current_density_Sulzer2019.py +++ /dev/null @@ -1,33 +0,0 @@ -from pybamm import Parameter - - -def oxygen_exchange_current_density_Sulzer2019(c_e, T): - """ - Dimensional oxygen exchange-current density in the positive electrode, from [1]_ - - References - ---------- - .. [1] V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, - “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical - model.” - [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), - 166(12), 2363 (2019). - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - - """ - j0_ref = 2.5e-23 # srinivasan2003mathematical - c_e_typ = Parameter("Typical electrolyte concentration [mol.m-3]") - j0 = j0_ref * (c_e / c_e_typ) - - return j0 diff --git a/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/parameters.csv b/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/parameters.csv deleted file mode 100644 index cef7f627a3..0000000000 --- a/pybamm/input/parameters/lead_acid/positive_electrodes/lead_dioxide_Sulzer2019/parameters.csv +++ /dev/null @@ -1,41 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrode properties,,, -Positive electrode conductivity [S.m-1],80000,,Lead-oxide -Positive electrode pore size [m],1E-07,, -Maximum porosity of positive electrode,0.57,, -Molar volume of lead-dioxide [m3.mol-1],2.54797441364606E-05,,Calculated as 239e-3 / 9.38e3 -Molar volume of lead sulfate [m3.mol-1],4.81717011128776E-05,,Calculated as 303e-3 / 6.29e3 -Positive electrode volumetric capacity [C.m-3],2.745e9,bernardi1995mathematical, -Positive electrode open-circuit potential [V],[function]lead_dioxide_ocp_Bode1977,, -,,, -# Microstructure,,, -Positive electrode surface area to volume ratio [m-1],23000000,, -Positive electrode Bruggeman coefficient (electrolyte),1.5,, -Positive electrode Bruggeman coefficient (electrode),1.5,, -Positive electrode morphological parameter,0.6,srinivasan2003mathematical, -Positive electrode capacity [C.m-3],2745000000,, -,,, -# Interfacial reactions,,, -Positive electrode cation signed stoichiometry,3,, -Positive electrode electrons in reaction,2,, -Positive electrode exchange-current density [A.m-2],[function]lead_dioxide_exchange_current_density_Sulzer2019,, -Signed stoichiometry of cations (oxygen reaction),4,, -Signed stoichiometry of oxygen (oxygen reaction),1,, -Electrons in oxygen reaction,4,, -Positive electrode oxygen exchange-current density [A.m-2],[function]oxygen_exchange_current_density_Sulzer2019,, -Reference oxygen molecule concentration [mol.m-3],1000,srinivasan2003mathematical, -Oxygen reference OCP vs SHE [V],1.229,srinivasan2003mathematical, -Signed stoichiometry of cations (hydrogen reaction),2,, -Electrons in hydrogen reaction,2,, -Positive electrode reference exchange-current density (hydrogen) [A.m-2],0,srinivasan2003mathematical, -Hydrogen reference OCP vs SHE [V],0,srinivasan2003mathematical, -Positive electrode double-layer capacity [F.m-2],0.2,, -,,, -# Density,,, -Positive electrode density [kg.m-3],9375,Pubchem, -,,, -# Thermal parameters,,, -Positive electrode specific heat capacity [J.kg-1.K-1],256,NIST Chemistry WebBook SRD69, -Positive electrode thermal conductivity [W.m-1.K-1],35,assume same as lead, diff --git a/pybamm/input/parameters/lead_acid/separators/__init__.py b/pybamm/input/parameters/lead_acid/separators/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lead_acid/separators/agm_Sulzer2019/README.md b/pybamm/input/parameters/lead_acid/separators/agm_Sulzer2019/README.md deleted file mode 100644 index b64b644c22..0000000000 --- a/pybamm/input/parameters/lead_acid/separators/agm_Sulzer2019/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# AGM separator parameters - -Parameters for an Absorbent Glass Mat (AGM) separator, from the paper - -> V. Sulzer, S. J. Chapman, C. P. Please, D. A. Howey, and C. W. Monroe, “Faster lead-acid battery simulations from porous-electrode theory: Part I. Physical model.” [Journal of the Electrochemical Society](https://doi.org/10.1149/2.0301910jes), 166(12), 2363 (2019). - -and references therein. diff --git a/pybamm/input/parameters/lead_acid/separators/agm_Sulzer2019/parameters.csv b/pybamm/input/parameters/lead_acid/separators/agm_Sulzer2019/parameters.csv deleted file mode 100644 index 35f4884e81..0000000000 --- a/pybamm/input/parameters/lead_acid/separators/agm_Sulzer2019/parameters.csv +++ /dev/null @@ -1,8 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -Maximum porosity of separator,0.92,, -Separator Bruggeman coefficient (electrolyte),1.5,, -Separator density [kg.m-3],1680, Bulk density from Gigova 2006, -Separator specific heat capacity [J.kg-1.K-1],700, Electronics Cooling (fiberglass), -Separator thermal conductivity [W.m-1.K-1],0.04, University Physics Sears et al. 1999 (fiberglass), \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Ai2020.py b/pybamm/input/parameters/lithium_ion/Ai2020.py index a5cdf1ec09..5cb1c0450c 100644 --- a/pybamm/input/parameters/lithium_ion/Ai2020.py +++ b/pybamm/input/parameters/lithium_ion/Ai2020.py @@ -498,75 +498,7 @@ def electrolyte_conductivity_Ai2020(c_e, T): # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ - # Ai2020 parameter set - # Enertech cell parameters - - Parameters for the Enertech cell, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # Enertech Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # Enertech Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # Lithium Cobalt Oxide positive electrode parameters - - Parameters for a lithium Cobalt Oxide positive electrode, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical - Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. - Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model - the thickness change of a commercial pouch cell during discharge. Journal of The - Electrochemical Society, 163(8), A1566-A1575. - - and references therein. - # Enertech Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the paper + Parameters for the Enertech cell (Ai2020), from the papers > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. @@ -577,9 +509,8 @@ def get_parameter_values(): Electrochemical Society, 163(8), A1566-A1575. and references therein. - # SEI parameters - Some example parameters for SEI growth from the papers: + SEI parameters are example parameters for SEI growth from the papers: > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the diff --git a/pybamm/input/parameters/lithium_ion/Chen2020.py b/pybamm/input/parameters/lithium_ion/Chen2020.py index eb6c4aed55..e259615602 100644 --- a/pybamm/input/parameters/lithium_ion/Chen2020.py +++ b/pybamm/input/parameters/lithium_ion/Chen2020.py @@ -212,9 +212,6 @@ def electrolyte_conductivity_Nyman2008(c_e, T): # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ - # Chen2020 parameter set - # LG M50 cell parameters - Parameters for an LG M50 cell, from the paper > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. @@ -224,64 +221,8 @@ def get_parameter_values(): the Electrochemical Society 167 (2020): 080534 and references therein. - # LG M50 Graphite negative electrode parameters - - Parameters for a LG M50 graphite negative electrode, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # Separator parameters - - Parameters for an LG M50 separator, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # NMC 811 positive electrode parameters - - Parameters for an LG M50 NMC 811 positive electrode, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and - modelling of the mass transport phenomena in LiPF6-EC-EMC - electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) - Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # SEI parameters - Some example parameters for SEI growth from the papers: + SEI parameters are example parameters for SEI growth from the papers: > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the diff --git a/pybamm/input/parameters/lithium_ion/Chen2020_composite.py b/pybamm/input/parameters/lithium_ion/Chen2020_composite.py index 8d24da2681..f2755529a1 100644 --- a/pybamm/input/parameters/lithium_ion/Chen2020_composite.py +++ b/pybamm/input/parameters/lithium_ion/Chen2020_composite.py @@ -308,20 +308,6 @@ def electrolyte_conductivity_Nyman2008(c_e, T): # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ - # Chen2020_composite parameter set - # LG M50 cell parameters - - Parameters for an LG M50 cell, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # Graphite/silicon negative electrode parameters - Parameters for a composite graphite/silicon negative electrode, from the paper > Ai, W., Kirkaldy, N., Jiang, Y., Offer, G., Wang, H., & Wu, B. (2022). A composite @@ -337,54 +323,9 @@ def get_parameter_values(): the Electrochemical Society 167 (2020): 080534 and references therein. - # Separator parameters - - Parameters for an LG M50 separator, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # NMC 811 positive electrode parameters - - Parameters for an LG M50 NMC 811 positive electrode, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and - modelling of the mass transport phenomena in LiPF6-EC-EMC - electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) - Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # SEI parameters - Example parameters for composite SEI on silicon/graphite. Both phases use the same - values, from the paper + SEI parameters are example parameters for composite SEI on silicon/graphite. + Both phases use the same values, from the paper > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium plating induced aging of lithium-ion batteries: Transition from linear to nonlinear diff --git a/pybamm/input/parameters/lithium_ion/Ecker2015.py b/pybamm/input/parameters/lithium_ion/Ecker2015.py index 04e0e07232..ccb7602f43 100644 --- a/pybamm/input/parameters/lithium_ion/Ecker2015.py +++ b/pybamm/input/parameters/lithium_ion/Ecker2015.py @@ -385,9 +385,6 @@ def electrolyte_conductivity_Ecker2015(c_e, T): # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ - # Ecker2015 parameter set - # Kokam SLPB 75106100 cell parameters - Parameters for a Kokam SLPB 75106100 cell, from the papers > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a @@ -412,16 +409,6 @@ def get_parameter_values(): Society, 165.13 (2018): A3169-A3178. # Graphite negative electrode parameters - Parameters for a graphite negative electrode, from the papers: - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery I. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - The fits to data for the electrode and electrolyte properties are those provided by Dr. Simon O’Kane in the paper: @@ -429,84 +416,7 @@ def get_parameter_values(): operation of graded lithium-ion electrodes: Systematic derivation and validation." Electrochemica Acta 339 (2020): 135862 - The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data - are extracted from - - > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and - surface cooling on lithium ion cell performance."" Journal of The Electrochemical - Society, 165.13 (2018): A3169-A3178. - # Separator parameters - - Parameters for the separator from the papers - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery i. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data - are extracted from - - > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and - surface cooling on lithium ion cell performance."" Journal of The Electrochemical - Society, 165.13 (2018): A3169-A3178. - # Lithium Nickel Cobalt Oxide positive electrode parameters - - Parameters for a Lithium Nickel Cobalt Oxide positive electrode, from the papers - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery i. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The fits to data for the electrode and electrolyte properties are those provided - by Dr. Simon O’Kane in the paper: - - > Richardson, Giles, et. al. "Generalised single particle models for high-rate - operation of graded lithium-ion electrodes: Systematic derivation and validation." - Electrochemica Acta 339 (2020): 135862 - - The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data - are extracted from - - > Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and - surface cooling on lithium ion cell performance."" Journal of The Electrochemical - Society, 165.13 (2018): A3169-A3178. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the papers - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery i. determination of parameters." Journal of the Electrochemical - Society 162.9 (2015): A1836-A1848. - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857. - - The fits to data for the electrode and electrolyte properties are those provided - by Dr. Simon O’Kane in the paper: - - > Richardson, Giles, et. al. "Generalised single particle models for high-rate - operation of graded lithium-ion electrodes: Systematic derivation and validation." - Electrochemica Acta 339 (2020): 135862 - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a - lithium-ion battery II. Model validation." Journal of The Electrochemical Society - 162.9 (2015): A1849-A1857.. - # SEI parameters - - Some example parameters for SEI growth from the papers: + SEI parameters are example parameters for SEI growth from the papers: > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the diff --git a/pybamm/input/parameters/lithium_ion/Marquis2019.py b/pybamm/input/parameters/lithium_ion/Marquis2019.py index ea780b2f79..94467fa444 100644 --- a/pybamm/input/parameters/lithium_ion/Marquis2019.py +++ b/pybamm/input/parameters/lithium_ion/Marquis2019.py @@ -337,9 +337,6 @@ def electrolyte_conductivity_Capiglia1999(c_e, T): # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ - # Marquis2019 parameter set - # Kokam SLPB78205130H cell parameters - Parameters for a Kokam SLPB78205130H cell, from the paper > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An @@ -348,60 +345,8 @@ def get_parameter_values(): A3693-A3706. and references therein. - # Graphite MCMB 2528 negative electrode parameters - - Parameters for a graphite MCMB 2528 negative electrode, from the paper - - > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An - asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # Separator parameters - - Parameters for the separator in the paper - - > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An - asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # Lithium Cobalt Oxide positive electrode parameters - - Parameters for a lithium Cobalt Oxide positive electrode, from the paper - - > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An - asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An - asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An - asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # SEI parameters - Some example parameters for SEI growth from the papers: + SEI parameters are example parameters for SEI growth from the papers: > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the diff --git a/pybamm/input/parameters/lithium_ion/Mohtat2020.py b/pybamm/input/parameters/lithium_ion/Mohtat2020.py index e0fc24e3e6..8ca1ef33da 100644 --- a/pybamm/input/parameters/lithium_ion/Mohtat2020.py +++ b/pybamm/input/parameters/lithium_ion/Mohtat2020.py @@ -318,8 +318,15 @@ def electrolyte_conductivity_PeymanMPM(c_e, T): # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ - # Mohtat2020 parameter set - # SEI parameters + Parameters for a graphite/NMC532 pouch cell from the paper + + > Mohtat, P., Lee, S., Sulzer, V., Siegel, J. B., & Stefanopoulou, A. G. (2020). + Differential expansion and voltage model for li-ion batteries at practical charging + rates. + [Journal of The Electrochemical Society](https://doi.org/10.1149/1945-7111/aba5d1), + 167(11), 110561. + + and references therein. Some example parameters for SEI growth from the papers: @@ -344,11 +351,15 @@ def get_parameter_values(): observed experimental data in the referenced papers. # SEI parameters - Parameters for lithium plating from the paper: + Parameters for lithium plating are from the paper: > Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium plating induced aging of lithium-ion batteries: Transition from linear to nonlinear aging. Journal of Power Sources, 360, 28-40. + + Note: this parameter set does not claim to be representative of the true parameter + values. Instead these are parameter values that were used to fit SEI models to + observed experimental data in the referenced papers. """ return { diff --git a/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py b/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py index ac62bb5640..8baee0f3e5 100644 --- a/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py +++ b/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py @@ -262,40 +262,12 @@ def electrolyte_conductivity_Kim2011(c_e, T): # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ - # NCA_Kim2011 parameter set - # Pouch cell parameters - - Parameters for a "Nominal Design" pouch cell, from the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - # Graphite negative electrode parameters - - Parameters for a graphite negative electrode, from the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - - Note, only an effective cell volumetric heat capacity is provided in the paper. We - therefore used the values for the density and specific heat capacity reported in the - Marquis2019 parameter set in each region and multiplied each density by the ratio - of the volumetric heat capacity provided in smith to the calculated value. This - ensures that the values produce the same effective cell volumetric heat capacity. - This works fine for thermal models that are averaged over the x-direction but not - for full (PDE in x direction) thermal models. We do the same for the planar - effective thermal conductivity. - # Separator parameters - - Parameters for the separator in the paper + Parameters for a "Nominal Design" graphite/NCA pouch cell, from the paper > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - and references therein. - Note, only an effective cell volumetric heat capacity is provided in the paper. We therefore used the values for the density and specific heat capacity reported in the Marquis2019 parameter set in each region and multiplied each density by the ratio @@ -304,44 +276,8 @@ def get_parameter_values(): This works fine for thermal models that are averaged over the x-direction but not for full (PDE in x direction) thermal models. We do the same for the planar effective thermal conductivity. - # Nickel Cobalt Aluminium (NCA) positive electrode parameters - - Parameters for an NCA positive electrode, from the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - - Note, only an effective cell volumetric heat capacity is provided in the paper. We - therefore used the values for the density and specific heat capacity reported in the - Marquis2019 parameter set in each region and multiplied each density by the ratio - of the volumetric heat capacity provided in smith to the calculated value. This - ensures that the values produce the same effective cell volumetric heat capacity. - This works fine for thermal models that are averaged over the x-direction but not - for full (PDE in x direction) thermal models. We do the same for the planar - effective thermal conductivity. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). - Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied - length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - - and references therein. - # SEI parameters - Some example parameters for SEI growth from the papers: + SEI parameters are example parameters for SEI growth from the papers: > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the diff --git a/pybamm/input/parameters/lithium_ion/OKane2022.py b/pybamm/input/parameters/lithium_ion/OKane2022.py index 60e88c3044..6139590942 100644 --- a/pybamm/input/parameters/lithium_ion/OKane2022.py +++ b/pybamm/input/parameters/lithium_ion/OKane2022.py @@ -487,66 +487,15 @@ def electrolyte_conductivity_Nyman2008_arrhenius(c_e, T): # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ - # OKane2022 parameter set - # LG M50 cell parameters - Parameters for an LG M50 cell, from the paper - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # LG M50 Graphite anode parameters - - Parameters for an LG M50 graphite negative electrode, from the paper - - > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, - Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. - ["Lithium-ion battery degradation: how to model - it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical - Chemistry: Chemical Physics 24 (2022): 7909-7922 - - and references therein. - # Separator parameters - - Parameters for an LG M50 separator, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # NMC 811 positive electrode parameters - - Parameters for an LG M50 NMC 811 positive electrode, from the paper - - > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, - Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. - ["Lithium-ion battery degradation: how to model - it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical - Chemistry: Chemical Physics 24 (2022): 7909-7922 - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. ["Lithium-ion battery degradation: how to model it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical Chemistry: Chemical Physics 24 (2022): 7909-7922 - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper + based on the paper > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for @@ -554,37 +503,11 @@ def get_parameter_values(): Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of the Electrochemical Society 167 (2020): 080534 - and references therein. - # SEI parameters - - Parameters for SEI growth from the paper - - > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, - Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. - ["Lithium-ion battery degradation: how to model - it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical - Chemistry: Chemical Physics 24 (2022): 7909-7922 - - and references therein. - - Note: this parameter set does not claim to be representative of the true parameter - values. These are merely the parameter values that were used in the referenced - papers. - # Lithium plating parameters - - Some example parameters for lithium plating from the paper: - - > Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, - Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. - ["Lithium-ion battery degradation: how to model - it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical - Chemistry: Chemical Physics 24 (2022): 7909-7922 - and references therein. - Note: this parameter set does not claim to be representative of the true parameter - values. These are merely the parameter values that were used in the referenced - papers. + Note: the SEI and plating parameters do not claim to be representative of the true + parameter values. These are merely the parameter values that were used in the + referenced papers. """ return { @@ -742,5 +665,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 17038.0, "Initial temperature [K]": 298.15, # citations - "citations": ["OKane2022", "Chen2020"], + "citations": ["OKane2022", "OKane2020", "Chen2020"], } diff --git a/pybamm/input/parameters/lithium_ion/ORegan2022.py b/pybamm/input/parameters/lithium_ion/ORegan2022.py index 48f2c8e764..17a0a85df7 100644 --- a/pybamm/input/parameters/lithium_ion/ORegan2022.py +++ b/pybamm/input/parameters/lithium_ion/ORegan2022.py @@ -920,9 +920,6 @@ def electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019(c_e, T): # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ - # ORegan2022 parameter set - # LG M50 cell parameters - Parameters for an LG M50 cell, from the paper > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. @@ -930,54 +927,12 @@ def get_parameter_values(): battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) Electrochimica Acta 425 (2022): 140700 - and references therein. - # LG M50 Graphite negative electrode parameters - - Parameters for a LG M50 graphite negative electrode, from the paper - - > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. - ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical - battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) - Electrochimica Acta 425 (2022): 140700 - - and references therein. - # Separator parameters - - Parameters for an LG M50 separator, from the paper - - > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. - ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical - battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) - Electrochimica Acta 425 (2022): 140700 - - and references therein. - # NMC 811 positive electrode parameters - - Parameters for an LG M50 NMC positive electrode, from the paper - - > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. - ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical - battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) - Electrochimica Acta 425 (2022): 140700 - - and references therein. - # LiPF6 in EC:EMC (3:7 w:w) electrolyte parameters - - Parameters for a LiPF6 in EC:EMC (3:7 w:w) electrolyte, from the paper + Parameters for a LiPF6 in EC:EMC (3:7 w:w) electrolyte are from the paper > Johannes Landesfeind and Hubert A. Gasteiger, ["Temperature and Concentration Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes."](https://iopscience.iop.org/article/10.1149/2.0571912jes) Journal of the Electrochemical Society 166 (2019): A3079. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. - ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical - battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) - Electrochimica Acta 425 (2022): 140700 and references therein. """ diff --git a/pybamm/input/parameters/lithium_ion/Prada2013.py b/pybamm/input/parameters/lithium_ion/Prada2013.py index 5a6e7ff029..d9af1247eb 100644 --- a/pybamm/input/parameters/lithium_ion/Prada2013.py +++ b/pybamm/input/parameters/lithium_ion/Prada2013.py @@ -201,9 +201,6 @@ def electrolyte_conductivity_Nyman2008(c_e, T): # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ - # Prada2013 parameter set - # Pouch cell parameters - Parameters for an A123 LFP cell, from the paper > Lain, M. J., Brandon, J., & Kendrick, E. (2019). Design Strategies for High Power @@ -211,18 +208,7 @@ def get_parameter_values(): [Batteries](https://doi.org/10.3390/batteries5040064), 5(4), 64. # LG M50 Graphite negative electrode parameters - Parameters for a LG M50 graphite negative electrode, from the paper - - > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery - Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of - the Electrochemical Society 167 (2020): 080534 - - and references therein. - # Separator parameters - - Parameters for an LG M50 separator, from the paper + Parameters for negative electrode (graphite) and separator are from the paper > Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for @@ -231,9 +217,8 @@ def get_parameter_values(): the Electrochemical Society 167 (2020): 080534 and references therein. - # Lithium Iron Phosphate positive electrode parameters - Parameters for an LFP positive electrode, from the paper + Parameters for positive electrode (LFP) are from the paper > Prada, E., Di Domenico, D., Creff, Y., Bernard, J., Sauvant-Moynot, V., & Huet, F. (2013). A simplified electrochemical and thermal aging model of LiFePO4-graphite @@ -242,27 +227,15 @@ def get_parameter_values(): and references therein. The functions used for OCP and exchange-current density are from separate references (documented within the functions), to provide better fit to - data - # LiPF6 electrolyte parameters + data - Parameters for a LiPF6 electrolyte, from the paper + Parameters for a LiPF6 electrolyte are from the paper > A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and modelling of the mass transport phenomena in LiPF6-EC-EMC electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 4C, using the initial conditions - from the paper - - > Prada, E., Di Domenico, D., Creff, Y., Bernard, J., Sauvant-Moynot, V., & Huet, F. - (2013). A simplified electrochemical and thermal aging model of LiFePO4-graphite - Li-ion batteries: power and capacity fade simulations. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.053304jes), 160(4), A616. - and references therein. """ @@ -357,5 +330,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 35.3766672, "Initial temperature [K]": 298.15, # citations - "citations": ["Chen2020", "Lain2019", "Prada2013"], + "citations": ["Chen2020", "Lain2019", "Prada2013", "Nyman2008"], } diff --git a/pybamm/input/parameters/lithium_ion/Ramadass2004.py b/pybamm/input/parameters/lithium_ion/Ramadass2004.py index 7d7fa6cfaf..ccd178c955 100644 --- a/pybamm/input/parameters/lithium_ion/Ramadass2004.py +++ b/pybamm/input/parameters/lithium_ion/Ramadass2004.py @@ -344,10 +344,11 @@ def electrolyte_conductivity_Ramadass2004(c_e, T): # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ - # Ramadass2004 parameter set - # Cell geometry parameters + Ramadass2004 parameter set. This is a bit of a Frankenstein parameter set and + should be used with caution. - Parameters for a lithium Cobalt Oxide positive electrode, from the paper + Parameters for a graphite negative electrode, Lithium Cobalt Oxide positive + electrode, and LiPF6 electrolyte are from the papers > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The @@ -360,28 +361,12 @@ def get_parameter_values(): 18650 cells cycled at elevated temperatures part I." (2002) and references therein. - # Graphite negative electrode parameters - Parameters for a graphite negative electrode, from the paper - - > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An - asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. - Popov.["Development of First Principles Capacity Fade Model for Li-Ion Cells."](http - s://scholarcommons.sc.edu/cgi/viewcontent.cgi?article=1161&context=eche_facpub) - (2004) - - and references therein. - # Separator parameters - - Parameters for the separator from the papers + Parameters for the separator are from the papers > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a lithium-ion battery i. determination of parameters." Journal of the Electrochemical Society 162.9 (2015): A1836-A1848. - > Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a lithium-ion battery II. Model validation." Journal of The Electrochemical Society 162.9 (2015): A1849-A1857. @@ -394,44 +379,7 @@ def get_parameter_values(): Society, 165.13 (2018): A3169-A3178. # Lithium Cobalt Oxide positive electrode parameters - Parameters for a lithium Cobalt Oxide positive electrode, from the paper - - > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An - asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. - Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." - (2004) - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper - - > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An - asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - > P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. - Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." - (2004) - - and references therein. - # 1C discharge from full - - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An - asymptotic derivation of a single particle model with electrolyte”. [Journal of The - Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), - A3693-A3706. - - and references therein. - # SEI parameters - - Some example parameters for SEI growth from the papers: + Parameters for SEI growth are from the papers > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the @@ -440,8 +388,8 @@ def get_parameter_values(): Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The Electrochemical Society, 156(3), - Note: Ramadass 2004 has mistakes in units and values of SEI parameters, corrected by - Safari 2009. + Note: Ramadass 2004 has mistakes in units and values of SEI parameters, corrected + by Safari 2009. """ return { diff --git a/pybamm/input/parameters/lithium_ion/Xu2019.py b/pybamm/input/parameters/lithium_ion/Xu2019.py index 0cc47ae624..9a1eb6c4b9 100644 --- a/pybamm/input/parameters/lithium_ion/Xu2019.py +++ b/pybamm/input/parameters/lithium_ion/Xu2019.py @@ -190,30 +190,11 @@ def electrolyte_conductivity_Valoen2005(c_e, T): # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ - # Xu2019 parameter set - # Kokam SLPB78205130H cell parameters - - Parameters for a Kokam SLPB78205130H cell, from the paper - - > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and - Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - and references therein. - # Graphite MCMB 2528 anode parameters - - Parameters for a graphite MCMB 2528 anode, from the paper - - > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and - Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - and references therein. - # Separator parameters - - Parameters for a Celgard 2325 separator, from the paper + Parameters for a Kokam SLPB78205130H half-cell, from the paper. + Anode is graphite MCMB 2528. + Separator is Celgard 2325. + Cathode is lithium Cobalt Oxide. + Electrolyte is LiPF6. > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: @@ -221,37 +202,15 @@ def get_parameter_values(): Electrochemical Society 166.14 (2019): A3456-A3463. and references therein. - # Lithium Cobalt Oxide cathode parameters - Parameters for a lithium Cobalt Oxide cathode, from the paper - - > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and - Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - and references therein. - # LiPF6 electrolyte parameters - - Parameters for a LiPF6 electrolyte, from the paper + Parameters for a LiPF6 electrolyte are from the paper > Valøen, Lars Ole, and Jan N. Reimers. "Transport properties of LiPF6-based Li-ion battery electrolytes." Journal of The Electrochemical Society 152.5 (2005): A882-A891. [doi: 10.1149/1.1872737](http://dx.doi.org/10.1149/1.1872737) # 1C discharge from full - Discharge lithium-ion battery from full charge at 1C, using the initial conditions - from the paper - - > Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and - Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - and references therein. - # SEI parameters - - Some example parameters for SEI growth from the papers: + SEI parameters are example parameters for SEI growth from the papers: > Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the @@ -357,5 +316,5 @@ def get_parameter_values(): "Initial concentration in positive electrode [mol.m-3]": 4631.0, "Initial temperature [K]": 298.15, # citations - "citations": ["Xu2019"], + "citations": ["Xu2019", "Valoen2005"], } diff --git a/pybamm/input/parameters/lithium_ion/cells/A123_Lain2019/README.md b/pybamm/input/parameters/lithium_ion/cells/A123_Lain2019/README.md deleted file mode 100644 index 8c1bc70405..0000000000 --- a/pybamm/input/parameters/lithium_ion/cells/A123_Lain2019/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Pouch cell parameters - -Parameters for an A123 LFP cell, from the paper - -> Lain, M. J., Brandon, J., & Kendrick, E. (2019). Design Strategies for High Power vs. High Energy Lithium Ion Cells. [Batteries](https://doi.org/10.3390/batteries5040064), 5(4), 64. diff --git a/pybamm/input/parameters/lithium_ion/cells/A123_Lain2019/parameters.csv b/pybamm/input/parameters/lithium_ion/cells/A123_Lain2019/parameters.csv deleted file mode 100644 index 5b8d6189f5..0000000000 --- a/pybamm/input/parameters/lithium_ion/cells/A123_Lain2019/parameters.csv +++ /dev/null @@ -1,38 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Macroscale geometry,,, -Negative current collector thickness [m],1.00E-05,Lain 2019, -Negative electrode thickness [m],3.60E-05,Lain 2019, -Separator thickness [m],1.80E-05,Lain 2019, -Positive electrode thickness [m],8.10E-05,Lain 2019, -Positive current collector thickness [m],1.90E-05,Lain 2019, -Electrode height [m],6.49E-02,A123 18650 datasheet,Not needed for 1D -Electrode width [m],1.78,fit to Severson 2019,Not needed for 1D -Negative tab width [m],0.04,default,Not needed for 1D -Negative tab centre y-coordinate [m],0.06,default,Not needed for 1D -Negative tab centre z-coordinate [m],0.137,default,Not needed for 1D -Positive tab width [m],0.04,default,Not needed for 1D -Positive tab centre y-coordinate [m],0.147,default,Not needed for 1D -Positive tab centre z-coordinate [m],0.137,default,Not needed for 1D -,,, -# Current collector properties ,,, -Negative current collector conductivity [S.m-1],58411000,CRC Handbook,copper -Positive current collector conductivity [S.m-1],36914000,CRC Handbook,aluminium -,,, -# Density,,, -Negative current collector density [kg.m-3],8960,CRC Handbook,copper -Positive current collector density [kg.m-3],2700,CRC Handbook,aluminium -,,, -# Specific heat capacity,,, -Negative current collector specific heat capacity [J.kg-1.K-1],385,CRC Handbook,copper -Positive current collector specific heat capacity [J.kg-1.K-1],897,CRC Handbook,aluminium -,,, -# Thermal conductivity,,, -Negative current collector thermal conductivity [W.m-1.K-1],401,CRC Handbook,copper -Positive current collector thermal conductivity [W.m-1.K-1],237,CRC Handbook,aluminium -,,, -# Electrical,,, -Nominal cell capacity [A.h],1.1,Lain 2019, -Current function [A],1.1,, -Typical current [A],1.1,Lain 2019, diff --git a/pybamm/input/parameters/lithium_ion/cells/Kim2011/README.md b/pybamm/input/parameters/lithium_ion/cells/Kim2011/README.md deleted file mode 100644 index 6213c4a515..0000000000 --- a/pybamm/input/parameters/lithium_ion/cells/Kim2011/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Pouch cell parameters - -Parameters for a "Nominal Design" pouch cell, from the paper - -> Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied length scales. Journal of The Electrochemical Society, 158(8), A955-A969. diff --git a/pybamm/input/parameters/lithium_ion/cells/Kim2011/parameters.csv b/pybamm/input/parameters/lithium_ion/cells/Kim2011/parameters.csv deleted file mode 100644 index d64200a293..0000000000 --- a/pybamm/input/parameters/lithium_ion/cells/Kim2011/parameters.csv +++ /dev/null @@ -1,40 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Macroscale geometry,,, -Negative current collector thickness [m],10E-6,, -Negative electrode thickness [m],70E-6,, -Separator thickness [m],25E-6,, -Positive electrode thickness [m],50E-6,, -Positive current collector thickness [m],10E-6,, -Electrode height [m],0.2,, -Electrode width [m],0.14,, -Negative tab width [m],0.044,, -Negative tab centre y-coordinate [m],0.013,, -Negative tab centre z-coordinate [m],0.2, At top, -Positive tab width [m],0.044,, -Positive tab centre y-coordinate [m],0.137,, -Positive tab centre z-coordinate [m],0.2,At top, -Cell cooling surface area [m2],5.61E-2,,pouch -Cell volume [m3],4.62E-6,,pouch -,,, -# Current collector properties ,,, -Negative current collector conductivity [S.m-1],59.6E6,, -Positive current collector conductivity [S.m-1],37.8E6,, -,,, -# Density,,, -Negative current collector density [kg.m-3],11544.75, 8954 * 1.28934, -Positive current collector density [kg.m-3],3490.24338, 2707 * 1.28934, -,,, -# Specific heat capacity,,, -Negative current collector specific heat capacity [J.kg-1.K-1],385,, -Positive current collector specific heat capacity [J.kg-1.K-1],897,, -,,, -# Thermal conductivity,,, -Negative current collector thermal conductivity [W.m-1.K-1],267.467, 401 * 0.667, -Positive current collector thermal conductivity [W.m-1.K-1],158.079, 237 * 0.667, -,,, -# Electrical,,, -Nominal cell capacity [A.h],0.43,trial and error, -Typical current [A],0.43,0.2857,1C current -Current function [A],0.43,default current function, diff --git a/pybamm/input/parameters/lithium_ion/cells/LGM50_Chen2020/README.md b/pybamm/input/parameters/lithium_ion/cells/LGM50_Chen2020/README.md deleted file mode 100644 index 7429d5f50f..0000000000 --- a/pybamm/input/parameters/lithium_ion/cells/LGM50_Chen2020/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# LG M50 cell parameters - -Parameters for an LG M50 cell, from the paper - -> Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for Parameterization of Multi-scale Lithium-ion Battery Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of the Electrochemical Society 167 (2020): 080534 - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/cells/LGM50_Chen2020/parameters.csv b/pybamm/input/parameters/lithium_ion/cells/LGM50_Chen2020/parameters.csv deleted file mode 100644 index 038d2bc76d..0000000000 --- a/pybamm/input/parameters/lithium_ion/cells/LGM50_Chen2020/parameters.csv +++ /dev/null @@ -1,35 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Macroscale geometry,,, -Negative current collector thickness [m],12E-6,Chen 2020, -Negative electrode thickness [m],85.2E-6,Chen 2020, -Separator thickness [m],12E-6,Chen 2020, -Positive electrode thickness [m],75.6E-6,Chen 2020, -Positive current collector thickness [m],16E-6,Chen 2020, -Electrode height [m],6.5E-2,Chen 2020, -Electrode width [m],1.58,Chen 2020,accounts for both sides of unwound electrode (double-sided coating) -Cell cooling surface area [m2],5.31E-3,Chen 2020,cylindrical -Cell volume [m3],2.42E-5,Chen 2020,cylindrical -Cell thermal expansion coefficient [m.K-1],1.1E-6,Ai2020, -,,, -# Current collector properties ,,, -Negative current collector conductivity [S.m-1],58411000,CRC Handbook,copper -Positive current collector conductivity [S.m-1],36914000,CRC Handbook,aluminium -,,, -# Density,,, -Negative current collector density [kg.m-3],8960,CRC Handbook,copper -Positive current collector density [kg.m-3],2700,CRC Handbook,aluminium -,,, -# Specific heat capacity,,, -Negative current collector specific heat capacity [J.kg-1.K-1],385,CRC Handbook,copper -Positive current collector specific heat capacity [J.kg-1.K-1],897,CRC Handbook,aluminium -,,, -# Thermal conductivity,,, -Negative current collector thermal conductivity [W.m-1.K-1],401,CRC Handbook,copper -Positive current collector thermal conductivity [W.m-1.K-1],237,CRC Handbook,aluminium -,,, -# Electrical,,, -Nominal cell capacity [A.h],5,Chen 2020, -Typical current [A],5,Chen 2020, -Current function [A],5,default current function, \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/README.md b/pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/README.md deleted file mode 100644 index cabdc81835..0000000000 --- a/pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# LG M50 cell parameters - -Parameters for an LG M50 cell, from the paper - -> Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) Electrochimica Acta 425 (2022): 140700 - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/__init__.py b/pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/aluminium_heat_capacity_CRC.py b/pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/aluminium_heat_capacity_CRC.py deleted file mode 100644 index c079d035ae..0000000000 --- a/pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/aluminium_heat_capacity_CRC.py +++ /dev/null @@ -1,23 +0,0 @@ -def aluminium_heat_capacity_CRC(T): - """ - Aluminium specific heat capacity as a function of the temperature from [1]. - - References - ---------- - .. [1] William M. Haynes (Ed.). "CRC handbook of chemistry and physics". CRC Press - (2014). - - Parameters - ---------- - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Specific heat capacity - """ - - cp = 4.503e-6 * T**3 - 6.256e-3 * T**2 + 3.281 * T + 355.7 - - return cp diff --git a/pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/copper_heat_capacity_CRC.py b/pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/copper_heat_capacity_CRC.py deleted file mode 100644 index 1ca23f622f..0000000000 --- a/pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/copper_heat_capacity_CRC.py +++ /dev/null @@ -1,23 +0,0 @@ -def copper_heat_capacity_CRC(T): - """ - Copper specific heat capacity as a function of the temperature from [1]. - - References - ---------- - .. [1] William M. Haynes (Ed.). "CRC handbook of chemistry and physics". CRC Press - (2014). - - Parameters - ---------- - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Specific heat capacity - """ - - cp = 1.445e-6 * T**3 - 1.946e-3 * T**2 + 0.9633 * T + 236 - - return cp diff --git a/pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/copper_thermal_conductivity_CRC.py b/pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/copper_thermal_conductivity_CRC.py deleted file mode 100644 index 372b060ce6..0000000000 --- a/pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/copper_thermal_conductivity_CRC.py +++ /dev/null @@ -1,23 +0,0 @@ -def copper_thermal_conductivity_CRC(T): - """ - Copper thermal conductivity as a function of the temperature from [1]. - - References - ---------- - .. [1] William M. Haynes (Ed.). "CRC handbook of chemistry and physics". CRC Press - (2014). - - Parameters - ---------- - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Thermal conductivity - """ - - lambda_th = -5.409e-7 * T**3 + 7.054e-4 * T**2 - 0.3727 * T + 463.6 - - return lambda_th diff --git a/pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/parameters.csv b/pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/parameters.csv deleted file mode 100644 index 95b3d79b1b..0000000000 --- a/pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/parameters.csv +++ /dev/null @@ -1,34 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Macroscale geometry,,, -Negative current collector thickness [m],12E-6,Chen 2020, -Negative electrode thickness [m],85.2E-6,Chen 2020, -Separator thickness [m],12E-6,Chen 2020, -Positive electrode thickness [m],75.6E-6,Chen 2020, -Positive current collector thickness [m],16E-6,Chen 2020, -Electrode height [m],6.5E-2,Chen 2020, -Electrode width [m],1.58,Chen 2020,accounts for both sides of unwound electrode (double-sided coating) -Cell cooling surface area [m2],5.31E-3,Chen 2020,cylindrical -Cell volume [m3],2.42E-5,Chen 2020,cylindrical -,,, -# Current collector properties ,,, -Negative current collector conductivity [S.m-1],58411000,CRC Handbook,copper -Positive current collector conductivity [S.m-1],36914000,CRC Handbook,aluminium -,,, -# Density,,, -Negative current collector density [kg.m-3],8933,CRC Handbook,copper -Positive current collector density [kg.m-3],2702,CRC Handbook,aluminium -,,, -# Specific heat capacity,,, -Negative current collector specific heat capacity [J.kg-1.K-1],[function]copper_heat_capacity_CRC,CRC Handbook,copper -Positive current collector specific heat capacity [J.kg-1.K-1],[function]aluminium_heat_capacity_CRC,CRC Handbook,aluminium -,,, -# Thermal conductivity,,, -Negative current collector thermal conductivity [W.m-1.K-1],[function]copper_thermal_conductivity_CRC,CRC Handbook,copper -Positive current collector thermal conductivity [W.m-1.K-1],237,CRC Handbook,aluminium -,,, -# Electrical,,, -Nominal cell capacity [A.h],5,Chen 2020, -Typical current [A],5,Chen 2020, -Current function [A],5,default current function, \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/cells/UMBL_Mohtat2020/parameters.csv b/pybamm/input/parameters/lithium_ion/cells/UMBL_Mohtat2020/parameters.csv deleted file mode 100644 index 7b53319df1..0000000000 --- a/pybamm/input/parameters/lithium_ion/cells/UMBL_Mohtat2020/parameters.csv +++ /dev/null @@ -1,34 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Macroscale geometry,,, -Negative current collector thickness [m],2.5E-05,Scott Moura FastDFN,no info from Peyman MPM -Negative electrode thickness [m],62E-06,Peyman MPM, -Separator thickness [m],12E-06,Peyman MPM, -Positive electrode thickness [m],67E-06,Peyman MPM, -Positive current collector thickness [m],2.5E-05,Scott Moura FastDFN,no info from Peyman MPM -Electrode height [m],1,KOKAM SLPB78205130H,Not needed for 1D -Electrode width [m],0.2050,KOKAM SLPB78205130H,Not needed for 1D -Cell cooling surface area [m2],0.41,,pouch -Cell volume [m3],3.92E-5,,pouch -,,, -# Current collector properties ,,, -Negative current collector conductivity [S.m-1],59600000,LIONSIMBA,carbon -Positive current collector conductivity [S.m-1],35500000,LIONSIMBA,aluminium -,,, -# Density,,, -Negative current collector density [kg.m-3],8954,, -Positive current collector density [kg.m-3],2707,, -,,, -# Specific heat capacity,,, -Negative current collector specific heat capacity [J.kg-1.K-1],385,, -Positive current collector specific heat capacity [J.kg-1.K-1],897,, -,,, -# Thermal conductivity,,, -Negative current collector thermal conductivity [W.m-1.K-1],401,, -Positive current collector thermal conductivity [W.m-1.K-1],237,, -,,, -# Electrical,,, -Nominal cell capacity [A.h],5,Peyman MPM, -Typical current [A],5,,1C current -Current function [A],5,default current function, diff --git a/pybamm/input/parameters/lithium_ion/cells/kokam_Ecker2015/README.md b/pybamm/input/parameters/lithium_ion/cells/kokam_Ecker2015/README.md deleted file mode 100644 index 0285001fca..0000000000 --- a/pybamm/input/parameters/lithium_ion/cells/kokam_Ecker2015/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Kokam SLPB 75106100 cell parameters - -Parameters for a Kokam SLPB 75106100 cell, from the papers - -> Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a lithium-ion battery I. determination of parameters." Journal of the Electrochemical Society 162.9 (2015): A1836-A1848. - -> Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a lithium-ion battery II. Model validation." Journal of The Electrochemical Society 162.9 (2015): A1849-A1857. - -The tab placement parameters are taken from measurements in - -> Hales, Alastair, et al. "The cell cooling coefficient: a standard to define heat rejection from lithium-ion batteries." Journal of The Electrochemical Society 166.12 (2019): A2383. - -The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data are extracted from - -> Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and surface cooling on lithium ion cell performance."" Journal of The Electrochemical Society, 165.13 (2018): A3169-A3178. diff --git a/pybamm/input/parameters/lithium_ion/cells/kokam_Ecker2015/parameters.csv b/pybamm/input/parameters/lithium_ion/cells/kokam_Ecker2015/parameters.csv deleted file mode 100644 index 9afe32eec2..0000000000 --- a/pybamm/input/parameters/lithium_ion/cells/kokam_Ecker2015/parameters.csv +++ /dev/null @@ -1,41 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Macroscale geometry,,, -Negative current collector thickness [m],1.40E-05,, -Negative electrode thickness [m],7.4E-05,, -Separator thickness [m],2E-05,, -Positive electrode thickness [m],5.4E-05,, -Positive current collector thickness [m],1.5E-05,, -Electrode height [m],1.01E-01,, -Electrode width [m],8.50E-02,, -Negative tab width [m],7E-3,,Hales et al. (2019) -Negative tab centre y-coordinate [m],4.5E-3,Hales et al. (2019), -Negative tab centre z-coordinate [m],1.01E-1,Top of cell, -Positive tab width [m],6.9E-3,Hales et al. (2019), -Positive tab centre y-coordinate [m],30.9E-3,Hales et al. (2019), -Positive tab centre z-coordinate [m],1.01E-1,Top of cell, -Cell cooling surface area [m2],1.72E-2,pouch (single layer), -Cell volume [m3],1.52E-6,pouch (single layer), -,,, -,,, -# Current collector properties ,,, -Negative current collector conductivity [S.m-1],58411000,CRC Handbook,copper -Positive current collector conductivity [S.m-1],36914000,CRC Handbook,aluminium -,,, -# Density,,, -Negative current collector density [kg.m-3],8933,Zhao et al. (2018), -Positive current collector density [kg.m-3],2702,Zhao et al. (2018), -,,, -# Specific heat capacity,,, -Negative current collector specific heat capacity [J.kg-1.K-1],385,Zhao et al. (2018), -Positive current collector specific heat capacity [J.kg-1.K-1],903,Zhao et al. (2018), -,,, -# Thermal conductivity,,, -Negative current collector thermal conductivity [W.m-1.K-1],398,Zhao et al. (2018), -Positive current collector thermal conductivity [W.m-1.K-1],238,Zhao et al. (2018), -,,, -# Electrical,,, -Nominal cell capacity [A.h], 0.15625, 7.5/48 (parameter set for a single layer cell), -Typical current [A], 0.15652,, -Current function [A],0.15652,default current function (1C), diff --git a/pybamm/input/parameters/lithium_ion/cells/kokam_Marquis2019/README.md b/pybamm/input/parameters/lithium_ion/cells/kokam_Marquis2019/README.md deleted file mode 100644 index 5b93f198d6..0000000000 --- a/pybamm/input/parameters/lithium_ion/cells/kokam_Marquis2019/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Kokam SLPB78205130H cell parameters - -Parameters for a Kokam SLPB78205130H cell, from the paper - -> Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), A3693-A3706. - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/cells/kokam_Marquis2019/parameters.csv b/pybamm/input/parameters/lithium_ion/cells/kokam_Marquis2019/parameters.csv deleted file mode 100644 index 97b6198ccb..0000000000 --- a/pybamm/input/parameters/lithium_ion/cells/kokam_Marquis2019/parameters.csv +++ /dev/null @@ -1,40 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Macroscale geometry,,, -Negative current collector thickness [m],2.5E-05,Scott Moura FastDFN, -Negative electrode thickness [m],0.0001,Scott Moura FastDFN, -Separator thickness [m],2.5E-05,Scott Moura FastDFN, -Positive electrode thickness [m],0.0001,Scott Moura FastDFN, -Positive current collector thickness [m],2.5E-05,Scott Moura FastDFN, -Electrode height [m],0.137,KOKAM SLPB78205130H,Not needed for 1D -Electrode width [m],0.207,KOKAM SLPB78205130H,Not needed for 1D -Negative tab width [m],0.04,,Need to find actual value for KOKAM cell -Negative tab centre y-coordinate [m],0.06,,Need to find actual value for KOKAM cell -Negative tab centre z-coordinate [m],0.137,,Need to find actual value for KOKAM cell -Positive tab width [m],0.04,,Need to find actual value for KOKAM cell -Positive tab centre y-coordinate [m],0.147,,Need to find actual value for KOKAM cell -Positive tab centre z-coordinate [m],0.137,,Need to find actual value for KOKAM cell -Cell cooling surface area [m2],5.69E-2,,pouch -Cell volume [m3],7.80E-6,,pouch -,,, -# Current collector properties ,,, -Negative current collector conductivity [S.m-1],59600000,LIONSIMBA,carbon -Positive current collector conductivity [S.m-1],35500000,LIONSIMBA,aluminium -,,, -# Density,,, -Negative current collector density [kg.m-3],8954,, -Positive current collector density [kg.m-3],2707,, -,,, -# Specific heat capacity,,, -Negative current collector specific heat capacity [J.kg-1.K-1],385,, -Positive current collector specific heat capacity [J.kg-1.K-1],897,, -,,, -# Thermal conductivity,,, -Negative current collector thermal conductivity [W.m-1.K-1],401,, -Positive current collector thermal conductivity [W.m-1.K-1],237,, -,,, -# Electrical,,, -Nominal cell capacity [A.h],0.680616,,24 Ah/m2 * 0.137m * 0.207m -Typical current [A],0.680616,,1C current -Current function [A],0.680616,default current function, \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/cells/li_metal_Xu2019/README.md b/pybamm/input/parameters/lithium_ion/cells/li_metal_Xu2019/README.md deleted file mode 100644 index 04eee92a19..0000000000 --- a/pybamm/input/parameters/lithium_ion/cells/li_metal_Xu2019/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Kokam SLPB78205130H cell parameters - -Parameters for a Kokam SLPB78205130H cell, from the paper - -> Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: Experimentally Validated Model of the Apparent Capacity Loss." Journal of The Electrochemical Society 166.14 (2019): A3456-A3463. - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/cells/li_metal_Xu2019/parameters.csv b/pybamm/input/parameters/lithium_ion/cells/li_metal_Xu2019/parameters.csv deleted file mode 100644 index ce52e485dd..0000000000 --- a/pybamm/input/parameters/lithium_ion/cells/li_metal_Xu2019/parameters.csv +++ /dev/null @@ -1,14 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Macroscale geometry,,, -Negative electrode thickness [m],700E-06,, -Separator thickness [m],25E-06,, -Positive electrode thickness [m],42E-06,, -Electrode height [m],0.01,,guess to get correct area -Electrode width [m],0.0154,,guess to get correct area -,,, -# Electrical,,, -Nominal cell capacity [A.h],0.0024,,C/4 is I=0.6 mA -Typical current [A],0.0024,,1C current -Current function [A],0.0024,,1C current diff --git a/pybamm/input/parameters/lithium_ion/cells/sony_Ramadass2004/README.md b/pybamm/input/parameters/lithium_ion/cells/sony_Ramadass2004/README.md deleted file mode 100644 index 5400d34b90..0000000000 --- a/pybamm/input/parameters/lithium_ion/cells/sony_Ramadass2004/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Cell geometry parameters - -Parameters for a lithium Cobalt Oxide positive electrode, from the paper - -> Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), A3693-A3706. -> P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." (2004) -> P. Ramadass, Bala Haran, Ralph White, and Branko N. Popov. "Capacity fade of Sony 18650 cells cycled at elevated temperatures part I." (2002) - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/cells/sony_Ramadass2004/parameters.csv b/pybamm/input/parameters/lithium_ion/cells/sony_Ramadass2004/parameters.csv deleted file mode 100644 index 3c97503cbd..0000000000 --- a/pybamm/input/parameters/lithium_ion/cells/sony_Ramadass2004/parameters.csv +++ /dev/null @@ -1,38 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Macroscale geometry,,, -Negative current collector thickness [m],1.7E-05,Ramadass 2002, -Negative electrode thickness [m],8.8e-05,Ramadass, -Separator thickness [m],2.5E-05,Scott Moura FastDFN, -Positive electrode thickness [m],8e-05,Ramadass, -Positive current collector thickness [m],2.3E-05,Ramadass 2002, -Electrode height [m],0.057,Ramadass 2002 negative electrode,Not needed for 1D -Electrode width [m],1.060692,Ramadass 2002 negative electrode twice ,Not needed for 1D -Negative tab width [m],0.04,,Need to find actual value for KOKAM cell -Negative tab centre y-coordinate [m],0.06,,Need to find actual value for KOKAM cell -Negative tab centre z-coordinate [m],0.137,,Need to find actual value for KOKAM cell -Positive tab width [m],0.04,,Need to find actual value for KOKAM cell -Positive tab centre y-coordinate [m],0.147,,Need to find actual value for KOKAM cell -Positive tab centre z-coordinate [m],0.137,,Need to find actual value for KOKAM cell -,,, -# Current collector properties ,,, -Negative current collector conductivity [S.m-1],59600000,LIONSIMBA,carbon -Positive current collector conductivity [S.m-1],35500000,LIONSIMBA,aluminium -,,, -# Density,,, -Negative current collector density [kg.m-3],8954,, -Positive current collector density [kg.m-3],2707,, -,,, -# Specific heat capacity,,, -Negative current collector specific heat capacity [J.kg-1.K-1],385,, -Positive current collector specific heat capacity [J.kg-1.K-1],897,, -,,, -# Thermal conductivity,,, -Negative current collector thermal conductivity [W.m-1.K-1],401,, -Positive current collector thermal conductivity [W.m-1.K-1],237,, -,,, -# Electrical,,, -Nominal cell capacity [A.h],1,,16.54 Ah/m2 * 0.057m * 1.06m -Typical current [A],1,,1C current -Current function [A],1,default current function, diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/LiPF6_Mohtat2020/__init__.py b/pybamm/input/parameters/lithium_ion/electrolytes/LiPF6_Mohtat2020/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/LiPF6_Mohtat2020/electrolyte_conductivity_PeymanMPM.py b/pybamm/input/parameters/lithium_ion/electrolytes/LiPF6_Mohtat2020/electrolyte_conductivity_PeymanMPM.py deleted file mode 100644 index 229d22cea2..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/LiPF6_Mohtat2020/electrolyte_conductivity_PeymanMPM.py +++ /dev/null @@ -1,33 +0,0 @@ -from pybamm import exp, constants - - -def electrolyte_conductivity_PeymanMPM(c_e, T): - """ - Conductivity of LiPF6 in EC:DMC as a function of ion concentration. The original - data is from [1]. The fit is from Dualfoil [2]. - - References - ---------- - .. [1] C Capiglia et al. 7Li and 19F diffusion coefficients and thermal - properties of non-aqueous electrolyte solutions for rechargeable lithium batteries. - Journal of power sources 81 (1999): 859-862. - .. [2] http://www.cchem.berkeley.edu/jsngrp/fortran.html - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte conductivity - """ - - sigma_e = 1.3 - E_k_e = 34700 - arrhenius = exp(E_k_e / constants.R * (1 / 298.15 - 1 / T)) - - return sigma_e * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/LiPF6_Mohtat2020/electrolyte_diffusivity_PeymanMPM.py b/pybamm/input/parameters/lithium_ion/electrolytes/LiPF6_Mohtat2020/electrolyte_diffusivity_PeymanMPM.py deleted file mode 100644 index 3014398635..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/LiPF6_Mohtat2020/electrolyte_diffusivity_PeymanMPM.py +++ /dev/null @@ -1,34 +0,0 @@ -from pybamm import exp, constants - - -def electrolyte_diffusivity_PeymanMPM(c_e, T): - """ - Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. The original data - is from [1]. The fit from Dualfoil [2]. - - References - ---------- - .. [1] C Capiglia et al. 7Li and 19F diffusion coefficients and thermal - properties of non-aqueous electrolyte solutions for rechargeable lithium batteries. - Journal of power sources 81 (1999): 859-862. - .. [2] http://www.cchem.berkeley.edu/jsngrp/fortran.html - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte diffusivity - """ - - D_c_e = 5.35 * 10 ** (-10) - E_D_e = 37040 - arrhenius = exp(E_D_e / constants.R * (1 / 298.15 - 1 / T)) - - return D_c_e * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/LiPF6_Mohtat2020/parameters.csv b/pybamm/input/parameters/lithium_ion/electrolytes/LiPF6_Mohtat2020/parameters.csv deleted file mode 100644 index 534aae6cfc..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/LiPF6_Mohtat2020/parameters.csv +++ /dev/null @@ -1,11 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrolyte properties,,, -Typical electrolyte concentration [mol.m-3],1000,Peyman MPM,from MPM code -Initial concentration in electrolyte [mol.m-3],1000,Peyman MPM,from MPM code -Cation transference number,0.38,Peyman MPM, -1 + dlnf/dlnc,1,, -Typical lithium ion diffusivity [m2.s-1],5.34E-10,Scott Moura FastDFN, -Electrolyte diffusivity [m2.s-1],[function]electrolyte_diffusivity_PeymanMPM,, -Electrolyte conductivity [S.m-1],[function]electrolyte_conductivity_PeymanMPM,, diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/README.md b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/README.md deleted file mode 100644 index 07aa16c3ab..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# LiPF6 in EC:DMC (1:1 w:w) electrolyte parameters - -Parameters for a LiPF6 in EC:DMC (1:1 w:w) electrolyte, from the paper - -> Johannes Landesfeind and Hubert A. Gasteiger, ["Temperature and Concentration Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes."](https://iopscience.iop.org/article/10.1149/2.0571912jes) Journal of the Electrochemical Society 166 (2019): A3079. diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/__init__.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_TDF_EC_DMC_1_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_TDF_EC_DMC_1_1_Landesfeind2019.py deleted file mode 100644 index a9757c5526..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_TDF_EC_DMC_1_1_Landesfeind2019.py +++ /dev/null @@ -1,32 +0,0 @@ -from .electrolyte_base_Landesfeind2019 import electrolyte_TDF_base_Landesfeind2019 -import numpy as np - - -def electrolyte_TDF_EC_DMC_1_1_Landesfeind2019(c_e, T): - """ - Thermodynamic factor (TDF) of LiPF6 in EC:DMC (1:1 w:w) as a function of ion - concentration and temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte thermodynamic factor - """ - coeffs = np.array( - [-5.58, 7.17, 3.80e-2, 1.91, -6.65e-2, -5.08e-5, 1.1e-1, -6.10e-3, 1.51e-4] - ) - - return electrolyte_TDF_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py deleted file mode 100644 index 3f67f6051e..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py +++ /dev/null @@ -1,155 +0,0 @@ -from pybamm import exp, sqrt - - -def electrolyte_conductivity_base_Landesfeind2019(c_e, T, coeffs): - """ - Conductivity of LiPF6 in solvent_X as a function of ion concentration and - temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - coeffs: :class:`pybamm.Symbol` - Fitting parameter coefficients - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte conductivity - """ - c = c_e / 1000 # mol.m-3 -> mol.l - p1, p2, p3, p4, p5, p6 = coeffs - A = p1 * (1 + (T - p2)) - B = 1 + p3 * sqrt(c) + p4 * (1 + p5 * exp(1000 / T)) * c - C = 1 + c**4 * (p6 * exp(1000 / T)) - sigma_e = A * c * B / C # mS.cm-1 - - return sigma_e / 10 - - -def electrolyte_diffusivity_base_Landesfeind2019(c_e, T, coeffs): - """ - Diffusivity of LiPF6 in solvent_X as a function of ion concentration and - temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - coeffs: :class:`pybamm.Symbol` - Fitting parameter coefficients - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte diffusivity - """ - c = c_e / 1000 # mol.m-3 -> mol.l - p1, p2, p3, p4 = coeffs - A = p1 * exp(p2 * c) - B = exp(p3 / T) - C = exp(p4 * c / T) - D_e = A * B * C * 1e-10 # m2/s - - return D_e - - -def electrolyte_TDF_base_Landesfeind2019(c_e, T, coeffs): - """ - Thermodynamic factor (TDF) of LiPF6 in solvent_X as a function of ion concentration - and temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - coeffs: :class:`pybamm.Symbol` - Fitting parameter coefficients - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte thermodynamic factor - """ - c = c_e / 1000 # mol.m-3 -> mol.l - p1, p2, p3, p4, p5, p6, p7, p8, p9 = coeffs - tdf = ( - p1 - + p2 * c - + p3 * T - + p4 * c**2 - + p5 * c * T - + p6 * T**2 - + p7 * c**3 - + p8 * c**2 * T - + p9 * c * T**2 - ) - - return tdf - - -def electrolyte_transference_number_base_Landesfeind2019(c_e, T, coeffs): - """ - Transference number of LiPF6 in solvent_X as a function of ion concentration and - temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - coeffs: :class:`pybamm.Symbol` - Fitting parameter coefficients - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte transference number - """ - c = c_e / 1000 # mol.m-3 -> mol.l - p1, p2, p3, p4, p5, p6, p7, p8, p9 = coeffs - tplus = ( - p1 - + p2 * c - + p3 * T - + p4 * c**2 - + p5 * c * T - + p6 * T**2 - + p7 * c**3 - + p8 * c**2 * T - + p9 * c * T**2 - ) - - return tplus diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_conductivity_EC_DMC_1_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_conductivity_EC_DMC_1_1_Landesfeind2019.py deleted file mode 100644 index af69241f1c..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_conductivity_EC_DMC_1_1_Landesfeind2019.py +++ /dev/null @@ -1,32 +0,0 @@ -from .electrolyte_base_Landesfeind2019 import ( - electrolyte_conductivity_base_Landesfeind2019, -) -import numpy as np - - -def electrolyte_conductivity_EC_DMC_1_1_Landesfeind2019(c_e, T): - """ - Conductivity of LiPF6 in EC:DMC (1:1 w:w) as a function of ion concentration and - temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte conductivity - """ - coeffs = np.array([7.98e-1, 2.28e2, -1.22, 5.09e-1, -4e-3, 3.79e-3]) - - return electrolyte_conductivity_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_diffusivity_EC_DMC_1_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_diffusivity_EC_DMC_1_1_Landesfeind2019.py deleted file mode 100644 index b8a655ef29..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_diffusivity_EC_DMC_1_1_Landesfeind2019.py +++ /dev/null @@ -1,32 +0,0 @@ -from .electrolyte_base_Landesfeind2019 import ( - electrolyte_diffusivity_base_Landesfeind2019, -) -import numpy as np - - -def electrolyte_diffusivity_EC_DMC_1_1_Landesfeind2019(c_e, T): - """ - Diffusivity of LiPF6 in EC:DMC (1:1 w:w) as a function of ion concentration and - temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte diffusivity - """ - coeffs = np.array([1.47e3, 1.33, -1.69e3, -5.63e2]) - - return electrolyte_diffusivity_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_transference_number_EC_DMC_1_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_transference_number_EC_DMC_1_1_Landesfeind2019.py deleted file mode 100644 index 0a763b2aab..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_transference_number_EC_DMC_1_1_Landesfeind2019.py +++ /dev/null @@ -1,44 +0,0 @@ -from .electrolyte_base_Landesfeind2019 import ( - electrolyte_transference_number_base_Landesfeind2019, -) -import numpy as np - - -def electrolyte_transference_number_EC_DMC_1_1_Landesfeind2019(c_e, T): - """ - Transference number of LiPF6 in EC:DMC (1:1 w:w) as a function of ion - concentration and temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte transference number - """ - coeffs = np.array( - [ - -7.91, - 2.45e-1, - 5.28e-2, - 6.98e-1, - -1.08e-2, - -8.21e-5, - 7.43e-4, - -2.22e-3, - 3.07e-5, - ] - ) - - return electrolyte_transference_number_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/parameters.csv b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/parameters.csv deleted file mode 100644 index 998cfc30d4..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/parameters.csv +++ /dev/null @@ -1,10 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrolyte properties,,, -Typical electrolyte concentration [mol.m-3],1000,default, -Initial concentration in electrolyte [mol.m-3],1000,default, -Cation transference number,[function]electrolyte_transference_number_EC_DMC_1_1_Landesfeind2019,Landesfeind 2019, -1 + dlnf/dlnc,[function]electrolyte_TDF_EC_DMC_1_1_Landesfeind2019,Landesfeind 2019, -Electrolyte diffusivity [m2.s-1],[function]electrolyte_diffusivity_EC_DMC_1_1_Landesfeind2019,Landesfeind 2019," " -Electrolyte conductivity [S.m-1],[function]electrolyte_conductivity_EC_DMC_1_1_Landesfeind2019,Landesfeind 2019," " \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/README.md b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/README.md deleted file mode 100644 index 2406cfaf76..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# LiPF6 in EC:EMC (3:7 w:w) electrolyte parameters - -Parameters for a LiPF6 in EC:EMC (3:7 w:w) electrolyte, from the paper - -> Johannes Landesfeind and Hubert A. Gasteiger, ["Temperature and Concentration Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes."](https://iopscience.iop.org/article/10.1149/2.0571912jes) Journal of the Electrochemical Society 166 (2019): A3079. diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/__init__.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_TDF_EC_EMC_3_7_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_TDF_EC_EMC_3_7_Landesfeind2019.py deleted file mode 100644 index 99a1b74c9d..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_TDF_EC_EMC_3_7_Landesfeind2019.py +++ /dev/null @@ -1,32 +0,0 @@ -from .electrolyte_base_Landesfeind2019 import electrolyte_TDF_base_Landesfeind2019 -import numpy as np - - -def electrolyte_TDF_EC_EMC_3_7_Landesfeind2019(c_e, T): - """ - Thermodynamic factor (TDF) of LiPF6 in EC:EMC (3:7 w:w) as a function of ion - concentration and temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte thermodynamic factor - """ - coeffs = np.array( - [2.57e1, -4.51e1, -1.77e-1, 1.94, 2.95e-1, 3.08e-4, 2.59e-1, -9.46e-3, -4.54e-4] - ) - - return electrolyte_TDF_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_base_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_base_Landesfeind2019.py deleted file mode 100644 index 3f67f6051e..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_base_Landesfeind2019.py +++ /dev/null @@ -1,155 +0,0 @@ -from pybamm import exp, sqrt - - -def electrolyte_conductivity_base_Landesfeind2019(c_e, T, coeffs): - """ - Conductivity of LiPF6 in solvent_X as a function of ion concentration and - temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - coeffs: :class:`pybamm.Symbol` - Fitting parameter coefficients - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte conductivity - """ - c = c_e / 1000 # mol.m-3 -> mol.l - p1, p2, p3, p4, p5, p6 = coeffs - A = p1 * (1 + (T - p2)) - B = 1 + p3 * sqrt(c) + p4 * (1 + p5 * exp(1000 / T)) * c - C = 1 + c**4 * (p6 * exp(1000 / T)) - sigma_e = A * c * B / C # mS.cm-1 - - return sigma_e / 10 - - -def electrolyte_diffusivity_base_Landesfeind2019(c_e, T, coeffs): - """ - Diffusivity of LiPF6 in solvent_X as a function of ion concentration and - temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - coeffs: :class:`pybamm.Symbol` - Fitting parameter coefficients - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte diffusivity - """ - c = c_e / 1000 # mol.m-3 -> mol.l - p1, p2, p3, p4 = coeffs - A = p1 * exp(p2 * c) - B = exp(p3 / T) - C = exp(p4 * c / T) - D_e = A * B * C * 1e-10 # m2/s - - return D_e - - -def electrolyte_TDF_base_Landesfeind2019(c_e, T, coeffs): - """ - Thermodynamic factor (TDF) of LiPF6 in solvent_X as a function of ion concentration - and temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - coeffs: :class:`pybamm.Symbol` - Fitting parameter coefficients - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte thermodynamic factor - """ - c = c_e / 1000 # mol.m-3 -> mol.l - p1, p2, p3, p4, p5, p6, p7, p8, p9 = coeffs - tdf = ( - p1 - + p2 * c - + p3 * T - + p4 * c**2 - + p5 * c * T - + p6 * T**2 - + p7 * c**3 - + p8 * c**2 * T - + p9 * c * T**2 - ) - - return tdf - - -def electrolyte_transference_number_base_Landesfeind2019(c_e, T, coeffs): - """ - Transference number of LiPF6 in solvent_X as a function of ion concentration and - temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - coeffs: :class:`pybamm.Symbol` - Fitting parameter coefficients - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte transference number - """ - c = c_e / 1000 # mol.m-3 -> mol.l - p1, p2, p3, p4, p5, p6, p7, p8, p9 = coeffs - tplus = ( - p1 - + p2 * c - + p3 * T - + p4 * c**2 - + p5 * c * T - + p6 * T**2 - + p7 * c**3 - + p8 * c**2 * T - + p9 * c * T**2 - ) - - return tplus diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019.py deleted file mode 100644 index 3d9c2db549..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019.py +++ /dev/null @@ -1,32 +0,0 @@ -from .electrolyte_base_Landesfeind2019 import ( - electrolyte_conductivity_base_Landesfeind2019, -) -import numpy as np - - -def electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019(c_e, T): - """ - Conductivity of LiPF6 in EC:EMC (3:7 w:w) as a function of ion concentration and - temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte conductivity - """ - coeffs = np.array([5.21e-1, 2.28e2, -1.06, 3.53e-1, -3.59e-3, 1.48e-3]) - - return electrolyte_conductivity_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019.py deleted file mode 100644 index 9a6d7a108f..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019.py +++ /dev/null @@ -1,32 +0,0 @@ -from .electrolyte_base_Landesfeind2019 import ( - electrolyte_diffusivity_base_Landesfeind2019, -) -import numpy as np - - -def electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019(c_e, T): - """ - Diffusivity of LiPF6 in EC:EMC (3:7 w:w) as a function of ion concentration and - temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte diffusivity - """ - coeffs = np.array([1.01e3, 1.01, -1.56e3, -4.87e2]) - - return electrolyte_diffusivity_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019.py deleted file mode 100644 index dc614d1e45..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019.py +++ /dev/null @@ -1,44 +0,0 @@ -from .electrolyte_base_Landesfeind2019 import ( - electrolyte_transference_number_base_Landesfeind2019, -) -import numpy as np - - -def electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019(c_e, T): - """ - Transference number of LiPF6 in EC:EMC (3:7 w:w) as a function of ion - concentration and temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte transference number - """ - coeffs = np.array( - [ - -1.28e1, - -6.12, - 8.21e-2, - 9.04e-1, - 3.18e-2, - -1.27e-4, - 1.75e-2, - -3.12e-3, - -3.96e-5, - ] - ) - - return electrolyte_transference_number_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/parameters.csv b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/parameters.csv deleted file mode 100644 index b156009df7..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/parameters.csv +++ /dev/null @@ -1,10 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrolyte properties,,, -Typical electrolyte concentration [mol.m-3],1000,default, -Initial concentration in electrolyte [mol.m-3],1000,default, -Cation transference number,[function]electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019,Landesfeind 2019, -1 + dlnf/dlnc,[function]electrolyte_TDF_EC_EMC_3_7_Landesfeind2019,Landesfeind 2019, -Electrolyte diffusivity [m2.s-1],[function]electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019,Landesfeind 2019," " -Electrolyte conductivity [S.m-1],[function]electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019,Landesfeind 2019," " \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/README.md b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/README.md deleted file mode 100644 index 5fb2efc1ce..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# LiPF6 in EMC:FEC (19:1 w:w) electrolyte parameters - -Parameters for a LiPF6 in EMC:FEC (19:1 w:w) electrolyte, from the paper - -> Johannes Landesfeind and Hubert A. Gasteiger, ["Temperature and Concentration Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes."](https://iopscience.iop.org/article/10.1149/2.0571912jes) Journal of the Electrochemical Society 166 (2019): A3079. diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/__init__.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_TDF_EMC_FEC_19_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_TDF_EMC_FEC_19_1_Landesfeind2019.py deleted file mode 100644 index 997b16d9f6..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_TDF_EMC_FEC_19_1_Landesfeind2019.py +++ /dev/null @@ -1,32 +0,0 @@ -from .electrolyte_base_Landesfeind2019 import electrolyte_TDF_base_Landesfeind2019 -import numpy as np - - -def electrolyte_TDF_EMC_FEC_19_1_Landesfeind2019(c_e, T): - """ - Thermodyamic factor (TDF) of LiPF6 in EMC:FEC (19:1 w:w) as a function of ion - concentration and temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte thermodynamic factor - """ - coeffs = np.array( - [3.22, -1.01e1, -1.58e-2, 6.12, 2.96e-2, 2.42e-5, -2.22e-1, -1.57e-2, 6.30e-6] - ) - - return electrolyte_TDF_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py deleted file mode 100644 index 3f67f6051e..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py +++ /dev/null @@ -1,155 +0,0 @@ -from pybamm import exp, sqrt - - -def electrolyte_conductivity_base_Landesfeind2019(c_e, T, coeffs): - """ - Conductivity of LiPF6 in solvent_X as a function of ion concentration and - temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - coeffs: :class:`pybamm.Symbol` - Fitting parameter coefficients - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte conductivity - """ - c = c_e / 1000 # mol.m-3 -> mol.l - p1, p2, p3, p4, p5, p6 = coeffs - A = p1 * (1 + (T - p2)) - B = 1 + p3 * sqrt(c) + p4 * (1 + p5 * exp(1000 / T)) * c - C = 1 + c**4 * (p6 * exp(1000 / T)) - sigma_e = A * c * B / C # mS.cm-1 - - return sigma_e / 10 - - -def electrolyte_diffusivity_base_Landesfeind2019(c_e, T, coeffs): - """ - Diffusivity of LiPF6 in solvent_X as a function of ion concentration and - temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - coeffs: :class:`pybamm.Symbol` - Fitting parameter coefficients - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte diffusivity - """ - c = c_e / 1000 # mol.m-3 -> mol.l - p1, p2, p3, p4 = coeffs - A = p1 * exp(p2 * c) - B = exp(p3 / T) - C = exp(p4 * c / T) - D_e = A * B * C * 1e-10 # m2/s - - return D_e - - -def electrolyte_TDF_base_Landesfeind2019(c_e, T, coeffs): - """ - Thermodynamic factor (TDF) of LiPF6 in solvent_X as a function of ion concentration - and temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - coeffs: :class:`pybamm.Symbol` - Fitting parameter coefficients - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte thermodynamic factor - """ - c = c_e / 1000 # mol.m-3 -> mol.l - p1, p2, p3, p4, p5, p6, p7, p8, p9 = coeffs - tdf = ( - p1 - + p2 * c - + p3 * T - + p4 * c**2 - + p5 * c * T - + p6 * T**2 - + p7 * c**3 - + p8 * c**2 * T - + p9 * c * T**2 - ) - - return tdf - - -def electrolyte_transference_number_base_Landesfeind2019(c_e, T, coeffs): - """ - Transference number of LiPF6 in solvent_X as a function of ion concentration and - temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - coeffs: :class:`pybamm.Symbol` - Fitting parameter coefficients - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte transference number - """ - c = c_e / 1000 # mol.m-3 -> mol.l - p1, p2, p3, p4, p5, p6, p7, p8, p9 = coeffs - tplus = ( - p1 - + p2 * c - + p3 * T - + p4 * c**2 - + p5 * c * T - + p6 * T**2 - + p7 * c**3 - + p8 * c**2 * T - + p9 * c * T**2 - ) - - return tplus diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_conductivity_EMC_FEC_19_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_conductivity_EMC_FEC_19_1_Landesfeind2019.py deleted file mode 100644 index 42e80ff9da..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_conductivity_EMC_FEC_19_1_Landesfeind2019.py +++ /dev/null @@ -1,32 +0,0 @@ -from .electrolyte_base_Landesfeind2019 import ( - electrolyte_conductivity_base_Landesfeind2019, -) -import numpy as np - - -def electrolyte_conductivity_EMC_FEC_19_1_Landesfeind2019(c_e, T): - """ - Conductivity of LiPF6 in EMC:FEC (19:1 w:w) as a function of ion concentration and - temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte conductivity - """ - coeffs = np.array([2.51e-2, 1.75e2, 1.23, 2.05e-1, -8.81e-2, 2.83e-3]) - - return electrolyte_conductivity_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_diffusivity_EMC_FEC_19_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_diffusivity_EMC_FEC_19_1_Landesfeind2019.py deleted file mode 100644 index 8a90084357..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_diffusivity_EMC_FEC_19_1_Landesfeind2019.py +++ /dev/null @@ -1,32 +0,0 @@ -from .electrolyte_base_Landesfeind2019 import ( - electrolyte_diffusivity_base_Landesfeind2019, -) -import numpy as np - - -def electrolyte_diffusivity_EMC_FEC_19_1_Landesfeind2019(c_e, T): - """ - Diffusivity of LiPF6 in EMC:FEC (19:1 w:w) as a function of ion concentration and - temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte diffusivity - """ - coeffs = np.array([5.86e2, 1.33, -1.38e3, -5.82e2]) - - return electrolyte_diffusivity_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_transference_number_EMC_FEC_19_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_transference_number_EMC_FEC_19_1_Landesfeind2019.py deleted file mode 100644 index 12e683fa8e..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_transference_number_EMC_FEC_19_1_Landesfeind2019.py +++ /dev/null @@ -1,34 +0,0 @@ -from .electrolyte_base_Landesfeind2019 import ( - electrolyte_transference_number_base_Landesfeind2019, -) -import numpy as np - - -def electrolyte_transference_number_EMC_FEC_19_1_Landesfeind2019(c_e, T): - """ - Transference number of LiPF6 in EMC:FEC (19:1 w:w) as a function of ion - concentration and temperature. The data comes from [1]. - - References - ---------- - .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration - Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. - Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Electrolyte transference number - """ - coeffs = np.array( - [-1.22e1, -3.05, 8.38e-2, 1.78, 1.51e-3, -1.37e-4, -2.45e-2, -5.15e-3, 2.14e-5] - ) - - return electrolyte_transference_number_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/parameters.csv b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/parameters.csv deleted file mode 100644 index fde3ede095..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/parameters.csv +++ /dev/null @@ -1,10 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrolyte properties,,, -Typical electrolyte concentration [mol.m-3],1000,default, -Initial concentration in electrolyte [mol.m-3],1000,default, -Cation transference number,[function]electrolyte_transference_number_EMC_FEC_19_1_Landesfeind2019,Landesfeind 2019, -1 + dlnf/dlnc,[function]electrolyte_TDF_EMC_FEC_19_1_Landesfeind2019,Landesfeind 2019, -Electrolyte diffusivity [m2.s-1],[function]electrolyte_diffusivity_EMC_FEC_19_1_Landesfeind2019,Landesfeind 2019," " -Electrolyte conductivity [S.m-1],[function]electrolyte_conductivity_EMC_FEC_19_1_Landesfeind2019,Landesfeind 2019," " \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ecker2015/README.md b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ecker2015/README.md deleted file mode 100644 index 323ef23cda..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ecker2015/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# LiPF6 electrolyte parameters - -Parameters for a LiPF6 electrolyte, from the papers - -> Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a lithium-ion battery i. determination of parameters." Journal of the Electrochemical Society 162.9 (2015): A1836-A1848. - -> Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a lithium-ion battery II. Model validation." Journal of The Electrochemical Society 162.9 (2015): A1849-A1857. - -The fits to data for the electrode and electrolyte properties are those provided -by Dr. Simon O’Kane in the paper: - -> Richardson, Giles, et. al. "Generalised single particle models for high-rate operation of graded lithium-ion electrodes: Systematic derivation and validation." Electrochemica Acta 339 (2020): 135862 diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ecker2015/__init__.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ecker2015/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ecker2015/electrolyte_conductivity_Ecker2015.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ecker2015/electrolyte_conductivity_Ecker2015.py deleted file mode 100644 index d00219c53f..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ecker2015/electrolyte_conductivity_Ecker2015.py +++ /dev/null @@ -1,44 +0,0 @@ -from pybamm import exp, constants - - -def electrolyte_conductivity_Ecker2015(c_e, T): - """ - Conductivity of LiPF6 in EC:DMC as a function of ion concentration [1, 2, 3]. - - References - ---------- - .. [1] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of - a lithium-ion battery i. determination of parameters." Journal of the - Electrochemical Society 162.9 (2015): A1836-A1848. - .. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of - a lithium-ion battery ii. model validation." Journal of The Electrochemical - Society 162.9 (2015): A1849-A1857. - .. [3] Richardson, Giles, et. al. "Generalised single particle models for - high-rate operation of graded lithium-ion electrodes: Systematic derivation - and validation." Electrochemica Acta 339 (2020): 135862 - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - # mol/m^3 to mol/l - cm = 1e-3 * c_e - - # value at T = 296K - sigma_e_296 = 0.2667 * cm**3 - 1.2983 * cm**2 + 1.7919 * cm + 0.1726 - - # add temperature dependence - E_k_e = 1.71e4 - C = 296 * exp(E_k_e / (constants.R * 296)) - sigma_e = C * sigma_e_296 * exp(-E_k_e / (constants.R * T)) / T - - return sigma_e diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ecker2015/electrolyte_diffusivity_Ecker2015.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ecker2015/electrolyte_diffusivity_Ecker2015.py deleted file mode 100644 index b933363165..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ecker2015/electrolyte_diffusivity_Ecker2015.py +++ /dev/null @@ -1,40 +0,0 @@ -import pybamm -from pybamm import constants - - -def electrolyte_diffusivity_Ecker2015(c_e, T): - """ - Diffusivity of LiPF6 in EC:DMC as a function of ion concentration [1, 2, 3]. - - References - ---------- - .. [1] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of - a lithium-ion battery i. determination of parameters." Journal of the - Electrochemical Society 162.9 (2015): A1836-A1848. - .. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of - a lithium-ion battery ii. model validation." Journal of The Electrochemical - Society 162.9 (2015): A1849-A1857. - .. [3] Richardson, Giles, et. al. "Generalised single particle models for - high-rate operation of graded lithium-ion electrodes: Systematic derivation - and validation." Electrochemica Acta 339 (2020): 135862 - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - # The diffusivity epends on the electrolyte conductivity - inputs = {"Electrolyte concentration [mol.m-3]": c_e, "Temperature [K]": T} - sigma_e = pybamm.FunctionParameter("Electrolyte conductivity [S.m-1]", inputs) - - D_c_e = (constants.k_b / (constants.F * constants.q_e)) * sigma_e * T / c_e - - return D_c_e diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ecker2015/parameters.csv b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ecker2015/parameters.csv deleted file mode 100644 index 6c1f86d3f4..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ecker2015/parameters.csv +++ /dev/null @@ -1,10 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrolyte properties,,, -Typical electrolyte concentration [mol.m-3],1000,, -Initial concentration in electrolyte [mol.m-3],1000,, -Cation transference number,0.26,, -1 + dlnf/dlnc,1,, -Electrolyte diffusivity [m2.s-1],[function]electrolyte_diffusivity_Ecker2015,, -Electrolyte conductivity [S.m-1],[function]electrolyte_conductivity_Ecker2015,, diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Kim2011/README.md b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Kim2011/README.md deleted file mode 100644 index d7db16c804..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Kim2011/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# LiPF6 electrolyte parameters - -Parameters for a LiPF6 electrolyte, from the paper - -> Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Kim2011/__init__.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Kim2011/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Kim2011/electrolyte_conductivity_Kim2011.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Kim2011/electrolyte_conductivity_Kim2011.py deleted file mode 100644 index bbec2015bb..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Kim2011/electrolyte_conductivity_Kim2011.py +++ /dev/null @@ -1,35 +0,0 @@ -from pybamm import exp - - -def electrolyte_conductivity_Kim2011(c_e, T): - """ - Conductivity of LiPF6 in EC as a function of ion concentration from [1]. - - References - ---------- - .. [1] Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. - (2011). Multi-domain modeling of lithium-ion batteries encompassing - multi-physics in varied length scales. Journal of The Electrochemical - Society, 158(8), A955-A969. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - sigma_e = ( - 3.45 * exp(-798 / T) * (c_e / 1000) ** 3 - - 48.5 * exp(-1080 / T) * (c_e / 1000) ** 2 - + 244 * exp(-1440 / T) * (c_e / 1000) - ) - - return sigma_e diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Kim2011/electrolyte_diffusivity_Kim2011.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Kim2011/electrolyte_diffusivity_Kim2011.py deleted file mode 100644 index 2e1f586ac9..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Kim2011/electrolyte_diffusivity_Kim2011.py +++ /dev/null @@ -1,35 +0,0 @@ -from pybamm import exp - - -def electrolyte_diffusivity_Kim2011(c_e, T): - """ - Diffusivity of LiPF6 in EC as a function of ion concentration from [1]. - - References - ---------- - .. [1] Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. - (2011). Multi-domain modeling of lithium-ion batteries encompassing - multi-physics in varied length scales. Journal of The Electrochemical - Society, 158(8), A955-A969. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - D_c_e = ( - 5.84 * 10 ** (-7) * exp(-2870 / T) * (c_e / 1000) ** 2 - - 33.9 * 10 ** (-7) * exp(-2920 / T) * (c_e / 1000) - + 129 * 10 ** (-7) * exp(-3200 / T) - ) - - return D_c_e diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Kim2011/parameters.csv b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Kim2011/parameters.csv deleted file mode 100644 index cf4fb47f96..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Kim2011/parameters.csv +++ /dev/null @@ -1,10 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrolyte properties,,, -Typical electrolyte concentration [mol.m-3],1200,, -Initial concentration in electrolyte [mol.m-3],1200,, -Cation transference number,0.4,Reported as a function in Kim2011 (Implement later), -1 + dlnf/dlnc,1,, -Electrolyte diffusivity [m2.s-1],[function]electrolyte_diffusivity_Kim2011,, -Electrolyte conductivity [S.m-1],[function]electrolyte_conductivity_Kim2011,, diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Marquis2019/README.md b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Marquis2019/README.md deleted file mode 100644 index 5d693ad9c7..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Marquis2019/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# LiPF6 electrolyte parameters - -Parameters for a LiPF6 electrolyte, from the paper - -> Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), A3693-A3706. - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Marquis2019/__init__.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Marquis2019/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Marquis2019/electrolyte_conductivity_Capiglia1999.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Marquis2019/electrolyte_conductivity_Capiglia1999.py deleted file mode 100644 index 5e080d3f33..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Marquis2019/electrolyte_conductivity_Capiglia1999.py +++ /dev/null @@ -1,40 +0,0 @@ -from pybamm import exp, constants - - -def electrolyte_conductivity_Capiglia1999(c_e, T): - """ - Conductivity of LiPF6 in EC:DMC as a function of ion concentration. The original - data is from [1]. The fit is from Dualfoil [2]. - - References - ---------- - .. [1] C Capiglia et al. 7Li and 19F diffusion coefficients and thermal - properties of non-aqueous electrolyte solutions for rechargeable lithium batteries. - Journal of power sources 81 (1999): 859-862. - .. [2] http://www.cchem.berkeley.edu/jsngrp/fortran.html - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - sigma_e = ( - 0.0911 - + 1.9101 * (c_e / 1000) - - 1.052 * (c_e / 1000) ** 2 - + 0.1554 * (c_e / 1000) ** 3 - ) - - E_k_e = 34700 - arrhenius = exp(E_k_e / constants.R * (1 / 298.15 - 1 / T)) - - return sigma_e * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Marquis2019/electrolyte_diffusivity_Capiglia1999.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Marquis2019/electrolyte_diffusivity_Capiglia1999.py deleted file mode 100644 index a0308fb81b..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Marquis2019/electrolyte_diffusivity_Capiglia1999.py +++ /dev/null @@ -1,34 +0,0 @@ -from pybamm import exp, constants - - -def electrolyte_diffusivity_Capiglia1999(c_e, T): - """ - Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. The original data - is from [1]. The fit from Dualfoil [2]. - - References - ---------- - .. [1] C Capiglia et al. 7Li and 19F diffusion coefficients and thermal - properties of non-aqueous electrolyte solutions for rechargeable lithium batteries. - Journal of power sources 81 (1999): 859-862. - .. [2] http://www.cchem.berkeley.edu/jsngrp/fortran.html - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - D_c_e = 5.34e-10 * exp(-0.65 * c_e / 1000) - E_D_e = 37040 - arrhenius = exp(E_D_e / constants.R * (1 / 298.15 - 1 / T)) - - return D_c_e * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Marquis2019/parameters.csv b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Marquis2019/parameters.csv deleted file mode 100644 index a935cd7da6..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Marquis2019/parameters.csv +++ /dev/null @@ -1,10 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrolyte properties,,, -Typical electrolyte concentration [mol.m-3],1000,Scott Moura FastDFN, -Initial concentration in electrolyte [mol.m-3],1000,Scott Moura FastDFN, -Cation transference number,0.4,Scott Moura FastDFN, -1 + dlnf/dlnc,1,, -Electrolyte diffusivity [m2.s-1],[function]electrolyte_diffusivity_Capiglia1999,, -Electrolyte conductivity [S.m-1],[function]electrolyte_conductivity_Capiglia1999,, diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Nyman2008/README.md b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Nyman2008/README.md deleted file mode 100644 index 4c8b672be2..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Nyman2008/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# LiPF6 electrolyte parameters - -Parameters for a LiPF6 electrolyte, from the paper - -> A. Nyman, M. Behm, and G. Lindbergh, ["Electrochemical characterisation and modelling of the mass transport phenomena in LiPF6-EC-EMC electrolyte,"](https://www.sciencedirect.com/science/article/pii/S0013468608005045) Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Nyman2008/__init__.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Nyman2008/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Nyman2008/electrolyte_conductivity_Nyman2008.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Nyman2008/electrolyte_conductivity_Nyman2008.py deleted file mode 100644 index 001880961a..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Nyman2008/electrolyte_conductivity_Nyman2008.py +++ /dev/null @@ -1,31 +0,0 @@ -def electrolyte_conductivity_Nyman2008(c_e, T): - """ - Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data - comes from [1]. - - References - ---------- - .. [1] A. Nyman, M. Behm, and G. Lindbergh, "Electrochemical characterisation and - modelling of the mass transport phenomena in LiPF6-EC-EMC electrolyte," - Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - sigma_e = ( - 0.1297 * (c_e / 1000) ** 3 - 2.51 * (c_e / 1000) ** 1.5 + 3.329 * (c_e / 1000) - ) - - # Nyman et al. (2008) does not provide temperature dependence - - return sigma_e diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Nyman2008/electrolyte_diffusivity_Nyman2008.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Nyman2008/electrolyte_diffusivity_Nyman2008.py deleted file mode 100644 index 8027f266d5..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Nyman2008/electrolyte_diffusivity_Nyman2008.py +++ /dev/null @@ -1,29 +0,0 @@ -def electrolyte_diffusivity_Nyman2008(c_e, T): - """ - Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data - comes from [1] - - References - ---------- - .. [1] A. Nyman, M. Behm, and G. Lindbergh, "Electrochemical characterisation and - modelling of the mass transport phenomena in LiPF6-EC-EMC electrolyte," - Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - D_c_e = 8.794e-11 * (c_e / 1000) ** 2 - 3.972e-10 * (c_e / 1000) + 4.862e-10 - - # Nyman et al. (2008) does not provide temperature dependence - - return D_c_e diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Nyman2008/parameters.csv b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Nyman2008/parameters.csv deleted file mode 100644 index 2d177004a3..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Nyman2008/parameters.csv +++ /dev/null @@ -1,10 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrolyte properties,,, -Typical electrolyte concentration [mol.m-3],1000,Chen 2020, -Initial concentration in electrolyte [mol.m-3],1000,Chen 2020, -Cation transference number,0.2594,Chen 2020, -1 + dlnf/dlnc,1,, -Electrolyte diffusivity [m2.s-1],[function]electrolyte_diffusivity_Nyman2008,Nyman 2008, -Electrolyte conductivity [S.m-1],[function]electrolyte_conductivity_Nyman2008,Nyman 2008, diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_OKane2022/README.md b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_OKane2022/README.md deleted file mode 100644 index afbce52778..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_OKane2022/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# LiPF6 electrolyte parameters - -Parameters for a LiPF6 electrolyte, from the paper - -> Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. ["Lithium-ion battery degradation: how to model it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical Chemistry: Chemical Physics 24 (2022): 7909-7922 - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_OKane2022/__init__.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_OKane2022/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_OKane2022/electrolyte_conductivity_Nyman2008_arrhenius.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_OKane2022/electrolyte_conductivity_Nyman2008_arrhenius.py deleted file mode 100644 index 69d14debea..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_OKane2022/electrolyte_conductivity_Nyman2008_arrhenius.py +++ /dev/null @@ -1,41 +0,0 @@ -from pybamm import exp, constants - - -def electrolyte_conductivity_Nyman2008_arrhenius(c_e, T): - """ - Conductivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data - comes from [1], with Arrhenius temperature dependence added from [2]. - - References - ---------- - .. [1] A. Nyman, M. Behm, and G. Lindbergh, "Electrochemical characterisation and - modelling of the mass transport phenomena in LiPF6-EC-EMC electrolyte," - Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. - .. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of - a lithium-ion battery i. determination of parameters." Journal of the - Electrochemical Society 162.9 (2015): A1836-A1848. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - sigma_e = ( - 0.1297 * (c_e / 1000) ** 3 - 2.51 * (c_e / 1000) ** 1.5 + 3.329 * (c_e / 1000) - ) - - # Nyman et al. (2008) does not provide temperature dependence - # So use temperature dependence from Ecker et al. (2015) instead - - E_sigma_e = 17000 - arrhenius = exp(E_sigma_e / constants.R * (1 / 298.15 - 1 / T)) - - return sigma_e * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_OKane2022/electrolyte_diffusivity_Nyman2008_arrhenius.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_OKane2022/electrolyte_diffusivity_Nyman2008_arrhenius.py deleted file mode 100644 index c01bc66320..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_OKane2022/electrolyte_diffusivity_Nyman2008_arrhenius.py +++ /dev/null @@ -1,39 +0,0 @@ -from pybamm import exp, constants - - -def electrolyte_diffusivity_Nyman2008_arrhenius(c_e, T): - """ - Diffusivity of LiPF6 in EC:EMC (3:7) as a function of ion concentration. The data - comes from [1], with Arrhenius temperature dependence added from [2]. - - References - ---------- - .. [1] A. Nyman, M. Behm, and G. Lindbergh, "Electrochemical characterisation and - modelling of the mass transport phenomena in LiPF6-EC-EMC electrolyte," - Electrochim. Acta, vol. 53, no. 22, pp. 6356–6365, 2008. - .. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of - a lithium-ion battery i. determination of parameters." Journal of the - Electrochemical Society 162.9 (2015): A1836-A1848. - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - D_c_e = 8.794e-11 * (c_e / 1000) ** 2 - 3.972e-10 * (c_e / 1000) + 4.862e-10 - - # Nyman et al. (2008) does not provide temperature dependence - # So use temperature dependence from Ecker et al. (2015) instead - - E_D_c_e = 17000 - arrhenius = exp(E_D_c_e / constants.R * (1 / 298.15 - 1 / T)) - - return D_c_e * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_OKane2022/parameters.csv b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_OKane2022/parameters.csv deleted file mode 100644 index 97a438f793..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_OKane2022/parameters.csv +++ /dev/null @@ -1,10 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrolyte properties,,, -Typical electrolyte concentration [mol.m-3],1000,Chen 2020, -Initial concentration in electrolyte [mol.m-3],1000,Chen 2020, -Cation transference number,0.2594,Chen 2020, -1 + dlnf/dlnc,1,, -Electrolyte diffusivity [m2.s-1],[function]electrolyte_diffusivity_Nyman2008_arrhenius,OKane 2022, -Electrolyte conductivity [S.m-1],[function]electrolyte_conductivity_Nyman2008_arrhenius,OKane 2022, diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ramadass2004/README.md b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ramadass2004/README.md deleted file mode 100644 index ea35a980e6..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ramadass2004/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# LiPF6 electrolyte parameters - -Parameters for a LiPF6 electrolyte, from the paper - -> Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), A3693-A3706. -> P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." (2004) - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ramadass2004/__init__.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ramadass2004/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ramadass2004/electrolyte_conductivity_Ramadass2004.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ramadass2004/electrolyte_conductivity_Ramadass2004.py deleted file mode 100644 index 884478a6e1..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ramadass2004/electrolyte_conductivity_Ramadass2004.py +++ /dev/null @@ -1,43 +0,0 @@ -from pybamm import exp, constants - - -def electrolyte_conductivity_Ramadass2004(c_e, T): - """ - Conductivity of LiPF6 in EC:DMC as a function of ion concentration. - Concentration should be in dm3 in the function. - - References - ---------- - .. [1] P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko - N. Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." - (2004) - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - # mol.m-3 to mol.dm-3, original function is likely in mS/cm - # The function is not in Arora 2000 as reported in Ramadass 2004 - - cm = 1e-6 * c_e # here it should be only 1e-3 - - sigma_e = ( - 4.1253 * (10 ** (-4)) - + 5.007 * cm - - 4.7212 * (10**3) * (cm**2) - + 1.5094 * (10**6) * (cm**3) - - 1.6018 * (10**8) * (cm**4) - ) * 1e3 # and here there should not be an exponent - - E_k_e = 34700 - arrhenius = exp(E_k_e / constants.R * (1 / 298.15 - 1 / T)) - - return sigma_e * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ramadass2004/electrolyte_diffusivity_Ramadass2004.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ramadass2004/electrolyte_diffusivity_Ramadass2004.py deleted file mode 100644 index 22134a70b7..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ramadass2004/electrolyte_diffusivity_Ramadass2004.py +++ /dev/null @@ -1,32 +0,0 @@ -from pybamm import exp, constants - - -def electrolyte_diffusivity_Ramadass2004(c_e, T): - """ - Diffusivity of LiPF6 in EC:DMC as a function of ion concentration. - - References - ---------- - .. [1] P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko - N. Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." - (2004) - - Parameters - ---------- - c_e: :class:`pybamm.Symbol` - Dimensional electrolyte concentration - T: :class:`pybamm.Symbol` - Dimensional temperature - - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - D_c_e = 7.5e-10 - E_D_e = 37040 - arrhenius = exp(E_D_e / constants.R * (1 / 298.15 - 1 / T)) - - return D_c_e * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ramadass2004/parameters.csv b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ramadass2004/parameters.csv deleted file mode 100644 index 50374d9dd9..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Ramadass2004/parameters.csv +++ /dev/null @@ -1,10 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrolyte properties,,, -Typical electrolyte concentration [mol.m-3],1000,Ramadass, -Initial concentration in electrolyte [mol.m-3],1000,Ramadass, -Cation transference number,0.363,Ramadass, -1 + dlnf/dlnc,1,, -Electrolyte diffusivity [m2.s-1],[function]electrolyte_diffusivity_Ramadass2004,, -Electrolyte conductivity [S.m-1],[function]electrolyte_conductivity_Ramadass2004,, diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Valoen2005/README.md b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Valoen2005/README.md deleted file mode 100644 index 81065d2876..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Valoen2005/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# LiPF6 electrolyte parameters - -Parameters for a LiPF6 electrolyte, from the paper - -> Valøen, Lars Ole, and Jan N. Reimers. "Transport properties of LiPF6-based Li-ion battery electrolytes." Journal of The Electrochemical Society 152.5 (2005): A882-A891. [doi: 10.1149/1.1872737](http://dx.doi.org/10.1149/1.1872737) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Valoen2005/__init__.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Valoen2005/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Valoen2005/electrolyte_conductivity_Valoen2005.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Valoen2005/electrolyte_conductivity_Valoen2005.py deleted file mode 100644 index 7058a4a55f..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Valoen2005/electrolyte_conductivity_Valoen2005.py +++ /dev/null @@ -1,35 +0,0 @@ -def electrolyte_conductivity_Valoen2005(c_e, T): - """ - Conductivity of LiPF6 in EC:DMC as a function of ion concentration, from [1] - (eqn 17) - - References - ---------- - .. [1] Valøen, Lars Ole, and Jan N. Reimers. "Transport properties of LiPF6-based - Li-ion battery electrolytes." Journal of The Electrochemical Society 152.5 (2005): - A882-A891. - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Dimensional electrolyte concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Dimensional temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Dimensional electrolyte conductivity [S.m-1] - """ - # mol/m3 to molar - c_e = c_e / 1000 - # mS/cm to S/m - return (1e-3 / 1e-2) * ( - c_e - * ( - (-10.5 + 0.0740 * T - 6.96e-5 * T**2) - + c_e * (0.668 - 0.0178 * T + 2.80e-5 * T**2) - + c_e**2 * (0.494 - 8.86e-4 * T) - ) - ** 2 - ) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Valoen2005/electrolyte_diffusivity_Valoen2005.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Valoen2005/electrolyte_diffusivity_Valoen2005.py deleted file mode 100644 index 9be8653829..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Valoen2005/electrolyte_diffusivity_Valoen2005.py +++ /dev/null @@ -1,32 +0,0 @@ -def electrolyte_diffusivity_Valoen2005(c_e, T): - """ - Diffusivity of LiPF6 in EC:DMC as a function of ion concentration, from [1] (eqn 14) - - References - ---------- - .. [1] Valøen, Lars Ole, and Jan N. Reimers. "Transport properties of LiPF6-based - Li-ion battery electrolytes." Journal of The Electrochemical Society 152.5 (2005): - A882-A891. - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Dimensional electrolyte concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Dimensional temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Dimensional electrolyte diffusivity [m2.s-1] - """ - # mol/m3 to molar - c_e = c_e / 1000 - - T_g = 229 + 5 * c_e - D_0 = -4.43 - 54 / (T - T_g) - D_1 = -0.22 - - # cm2/s to m2/s - # note, in the Valoen paper, ln means log10, so its inverse is 10^x - return (10 ** (D_0 + D_1 * c_e)) * 1e-4 diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Valoen2005/parameters.csv b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Valoen2005/parameters.csv deleted file mode 100644 index 2c6d668798..0000000000 --- a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Valoen2005/parameters.csv +++ /dev/null @@ -1,10 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrolyte properties,,, -Typical electrolyte concentration [mol.m-3],1000,,By convention -Initial concentration in electrolyte [mol.m-3],1000,,By convention -Cation transference number,0.38,,Assumed to be constant -Electrolyte diffusivity [m2.s-1],[function]electrolyte_diffusivity_Valoen2005,, -Electrolyte conductivity [S.m-1],[function]electrolyte_conductivity_Valoen2005,, -1 + dlnf/dlnc,1,, \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/experiments/1C_charge_from_empty_Mohtat2020/parameters.csv b/pybamm/input/parameters/lithium_ion/experiments/1C_charge_from_empty_Mohtat2020/parameters.csv deleted file mode 100644 index 72098e6c04..0000000000 --- a/pybamm/input/parameters/lithium_ion/experiments/1C_charge_from_empty_Mohtat2020/parameters.csv +++ /dev/null @@ -1,23 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Temperature -Reference temperature [K],298.15,25C, -Negative current collector surface heat transfer coefficient [W.m-2.K-1],0,, -Positive current collector surface heat transfer coefficient [W.m-2.K-1],0,, -Negative tab heat transfer coefficient [W.m-2.K-1],0,, -Positive tab heat transfer coefficient [W.m-2.K-1],0,, -Edge heat transfer coefficient [W.m-2.K-1],5,Peyman MPM, -Total heat transfer coefficient [W.m-2.K-1],5,Peyman MPM, -Ambient temperature [K], 298.15,, -,,, -# Electrical -Number of electrodes connected in parallel to make a cell,1,, -Number of cells connected in series to make a battery,1,, -Lower voltage cut-off [V],2.8,, -Upper voltage cut-off [V],4.2,, -,,, -# Initial conditions -Initial concentration in negative electrode [mol.m-3],48.8682,Peyman MPM, x0 (0.0017) * Csmax_n -Initial concentration in positive electrode [mol.m-3],31513.0,Peyman MPM, y0 (0.8907) * Csmax_p -Initial temperature [K],298.15,, diff --git a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Chen2020/README.md b/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Chen2020/README.md deleted file mode 100644 index 49160ef9fd..0000000000 --- a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Chen2020/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# 1C discharge from full - -Discharge lithium-ion battery from full charge at 1C, using the initial conditions from the paper - -> Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for Parameterization of Multi-scale Lithium-ion Battery Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of the Electrochemical Society 167 (2020): 080534 - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Chen2020/parameters.csv b/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Chen2020/parameters.csv deleted file mode 100644 index 398d5c26e8..0000000000 --- a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Chen2020/parameters.csv +++ /dev/null @@ -1,18 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Temperature -Reference temperature [K],298.15,25C, -Total heat transfer coefficient [W.m-2.K-1],10,default, -Ambient temperature [K],298.15,, -,,, -# Electrical -Number of electrodes connected in parallel to make a cell,1,, -Number of cells connected in series to make a battery,1,, -Lower voltage cut-off [V],2.5,, -Upper voltage cut-off [V],4.2,, -,,, -# Initial conditions -Initial concentration in negative electrode [mol.m-3],29866,Chen 2020, -Initial concentration in positive electrode [mol.m-3],17038,Chen 2020, -Initial temperature [K],298.15,, diff --git a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Ecker2015/README.md b/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Ecker2015/README.md deleted file mode 100644 index e3eb73f47e..0000000000 --- a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Ecker2015/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# 1C discharge from full - -Discharge lithium-ion battery from full charge at 1C, using the initial conditions from the paper - -> Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a lithium-ion battery II. Model validation." Journal of The Electrochemical Society 162.9 (2015): A1849-A1857.. diff --git a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Ecker2015/parameters.csv b/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Ecker2015/parameters.csv deleted file mode 100644 index c5d0488ece..0000000000 --- a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Ecker2015/parameters.csv +++ /dev/null @@ -1,24 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Temperature -Reference temperature [K],296.15,23C, -Negative current collector surface heat transfer coefficient [W.m-2.K-1],10,Assume uniform heat loss, -Positive current collector surface heat transfer coefficient [W.m-2.K-1],10,Assume uniform heat loss, -Negative tab heat transfer coefficient [W.m-2.K-1],10,Assume uniform heat loss, -Positive tab heat transfer coefficient [W.m-2.K-1],10,Assume uniform heat loss, -Edge heat transfer coefficient [W.m-2.K-1],10,Assume uniform heat loss, -Total heat transfer coefficient [W.m-2.K-1],10,Assume uniform heat loss, -Ambient temperature [K],298.15,, - -,,, -# Electrical -Number of electrodes connected in parallel to make a cell,1,, -Number of cells connected in series to make a battery,1,, -Lower voltage cut-off [V],2.5,, -Upper voltage cut-off [V],4.2,, -,,, -# Initial conditions -Initial concentration in negative electrode [mol.m-3], 26120.05,, -Initial concentration in positive electrode [mol.m-3], 12630.8,, -Initial temperature [K],298.15,, diff --git a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Kim2011/README.md b/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Kim2011/README.md deleted file mode 100644 index f83025c2ff..0000000000 --- a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Kim2011/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# 1C discharge from full - -Discharge lithium-ion battery from full charge at 1C, using the initial conditions from the paper - -> Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Kim2011/parameters.csv b/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Kim2011/parameters.csv deleted file mode 100644 index 35c17b584f..0000000000 --- a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Kim2011/parameters.csv +++ /dev/null @@ -1,24 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Temperature -Reference temperature [K],298.15,25C, -Negative current collector surface heat transfer coefficient [W.m-2.K-1],0,, -Positive current collector surface heat transfer coefficient [W.m-2.K-1],0,, -Negative tab heat transfer coefficient [W.m-2.K-1],25,, -Positive tab heat transfer coefficient [W.m-2.K-1],25,, -Edge heat transfer coefficient [W.m-2.K-1],0.3,, -Total heat transfer coefficient [W.m-2.K-1],25,, -Ambient temperature [K],298.15,, - -,,, -# Electrical -Number of electrodes connected in parallel to make a cell,1,, -Number of cells connected in series to make a battery,1,, -Lower voltage cut-off [V],2.7,, -Upper voltage cut-off [V],4.2,, -,,, -# Initial conditions -Initial concentration in negative electrode [mol.m-3],18081,0.63*2.84E4, -Initial concentration in positive electrode [mol.m-3],20090,0.41*4.9E4, -Initial temperature [K],298.15,, diff --git a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Marquis2019/README.md b/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Marquis2019/README.md deleted file mode 100644 index 92c6a810ae..0000000000 --- a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Marquis2019/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# 1C discharge from full - -Discharge lithium-ion battery from full charge at 1C, using the initial conditions from the paper - -> Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), A3693-A3706. - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Marquis2019/parameters.csv b/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Marquis2019/parameters.csv deleted file mode 100644 index faa617476d..0000000000 --- a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Marquis2019/parameters.csv +++ /dev/null @@ -1,23 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Temperature -Reference temperature [K],298.15,25C, -Ambient temperature [K],298.15,, -Negative current collector surface heat transfer coefficient [W.m-2.K-1],0,, -Positive current collector surface heat transfer coefficient [W.m-2.K-1],0,, -Negative tab heat transfer coefficient [W.m-2.K-1],10,, -Positive tab heat transfer coefficient [W.m-2.K-1],10,, -Edge heat transfer coefficient [W.m-2.K-1],0.3,, -Total heat transfer coefficient [W.m-2.K-1],10,, -,,, -# Electrical -Number of electrodes connected in parallel to make a cell,1,, -Number of cells connected in series to make a battery,1,, -Lower voltage cut-off [V],3.105,, -Upper voltage cut-off [V],4.1,, -,,, -# Initial conditions -Initial concentration in negative electrode [mol.m-3],19986.609595075,Scott Moura FastDFN, -Initial concentration in positive electrode [mol.m-3],30730.7554385565,Scott Moura FastDFN, -Initial temperature [K],298.15,, diff --git a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_ORegan2022/README.md b/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_ORegan2022/README.md deleted file mode 100644 index 904a40e7c9..0000000000 --- a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_ORegan2022/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# 1C discharge from full - -Discharge lithium-ion battery from full charge at 1C, using the initial conditions from the paper - -> Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) Electrochimica Acta 425 (2022): 140700 - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_ORegan2022/parameters.csv b/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_ORegan2022/parameters.csv deleted file mode 100644 index c613fd6f99..0000000000 --- a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_ORegan2022/parameters.csv +++ /dev/null @@ -1,18 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Temperature -Reference temperature [K],298.15,25C, -Total heat transfer coefficient [W.m-2.K-1],10,default, -Ambient temperature [K],298.15,, -,,, -# Electrical -Number of electrodes connected in parallel to make a cell,1,, -Number of cells connected in series to make a battery,1,, -Lower voltage cut-off [V],2.5,, -Upper voltage cut-off [V],4.4,, -,,, -# Initial conditions -Initial concentration in negative electrode [mol.m-3],28866,Chen 2020, -Initial concentration in positive electrode [mol.m-3],13975,Chen 2020, -Initial temperature [K],298.15,, diff --git a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Ramadass2004/README.md b/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Ramadass2004/README.md deleted file mode 100644 index 92c6a810ae..0000000000 --- a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Ramadass2004/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# 1C discharge from full - -Discharge lithium-ion battery from full charge at 1C, using the initial conditions from the paper - -> Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), A3693-A3706. - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Ramadass2004/parameters.csv b/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Ramadass2004/parameters.csv deleted file mode 100644 index 09fdb802c8..0000000000 --- a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Ramadass2004/parameters.csv +++ /dev/null @@ -1,22 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Temperature -Reference temperature [K],298.15,25C, -Ambient temperature [K], 298.15,, -Negative current collector surface heat transfer coefficient [W.m-2.K-1],0,, -Positive current collector surface heat transfer coefficient [W.m-2.K-1],0,, -Negative tab heat transfer coefficient [W.m-2.K-1],10,, -Positive tab heat transfer coefficient [W.m-2.K-1],10,, -Edge heat transfer coefficient [W.m-2.K-1],0.3,, -,,, -# Electrical -Number of electrodes connected in parallel to make a cell,1,, -Number of cells connected in series to make a battery,1,, -Lower voltage cut-off [V],2.8,, -Upper voltage cut-off [V],4.2,, -,,, -# Initial conditions -Initial concentration in negative electrode [mol.m-3],22610.7,Ramadass 2002, -Initial concentration in positive electrode [mol.m-3],25777.5,Ramadass 2002, -Initial temperature [K],298.15,, diff --git a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Xu2019/README.md b/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Xu2019/README.md deleted file mode 100644 index af08096b1e..0000000000 --- a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Xu2019/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# 1C discharge from full - -Discharge lithium-ion battery from full charge at 1C, using the initial conditions from the paper - -> Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: Experimentally Validated Model of the Apparent Capacity Loss." Journal of The Electrochemical Society 166.14 (2019): A3456-A3463. - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Xu2019/parameters.csv b/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Xu2019/parameters.csv deleted file mode 100644 index dc33db77bf..0000000000 --- a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Xu2019/parameters.csv +++ /dev/null @@ -1,17 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Temperature -Ambient temperature [K],298.15,25C, -Reference temperature [K],298.15,25C, -Heat transfer coefficient [W.m-2.K-1],10,, -,,, -# Electrical -Number of electrodes connected in parallel to make a cell,1,, -Number of cells connected in series to make a battery,1,, -Lower voltage cut-off [V],3.5,, -Upper voltage cut-off [V],4.2,, -,,, -# Initial conditions -Initial concentration in positive electrode [mol.m-3],4631,48230*0.096 adjusted so that initial voltage is <4.2V, -Initial temperature [K],298.15,, diff --git a/pybamm/input/parameters/lithium_ion/experiments/4C_discharge_from_full_Prada2013/README.md b/pybamm/input/parameters/lithium_ion/experiments/4C_discharge_from_full_Prada2013/README.md deleted file mode 100644 index 997e2e9233..0000000000 --- a/pybamm/input/parameters/lithium_ion/experiments/4C_discharge_from_full_Prada2013/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# 1C discharge from full - -Discharge lithium-ion battery from full charge at 4C, using the initial conditions from the paper - -> Prada, E., Di Domenico, D., Creff, Y., Bernard, J., Sauvant-Moynot, V., & Huet, F. (2013). A simplified electrochemical and thermal aging model of LiFePO4-graphite Li-ion batteries: power and capacity fade simulations. [Journal of The Electrochemical Society](https://doi.org/10.1149/2.053304jes), 160(4), A616. - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/experiments/4C_discharge_from_full_Prada2013/parameters.csv b/pybamm/input/parameters/lithium_ion/experiments/4C_discharge_from_full_Prada2013/parameters.csv deleted file mode 100644 index ab13c6b7b4..0000000000 --- a/pybamm/input/parameters/lithium_ion/experiments/4C_discharge_from_full_Prada2013/parameters.csv +++ /dev/null @@ -1,19 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Temperature,,, -Reference temperature [K],298.15,25C, -Heat transfer coefficient [W.m-2.K-1],10,, -Ambient temperature [K],298.15,, -,,, -,,, -# Electrical,,, -Number of electrodes connected in parallel to make a cell,1,, -Number of cells connected in series to make a battery,1,, -Lower voltage cut-off [V],2,, -Upper voltage cut-off [V],4.4,, -,,, -# Initial conditions,,, -Initial concentration in negative electrode [mol.m-3],28831.45783,Minimized to Severson Data, -Initial concentration in positive electrode [mol.m-3],35.3766672,Minimized to Severson Data, -Initial temperature [K],298.15,, diff --git a/pybamm/input/parameters/lithium_ion/lithium_platings/__init__.py b/pybamm/input/parameters/lithium_ion/lithium_platings/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/README.md b/pybamm/input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/README.md deleted file mode 100644 index ce38eb38c0..0000000000 --- a/pybamm/input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Lithium plating parameters - -Some example parameters for lithium plating from the paper: - -> O’Kane, S. E. J., Campbell, I. D., Marzook, M. W. J., Offer, G. J., & Marinescu, M. (2020) Physical origin of the differential voltage minimum associated with lithium plating in Li-ion batteries. Journal of The Electrochemical Society 167(3), 090540. - -Note: this parameter set does not claim to be representative of the true parameter values. Instead these are parameter values that were used to fit plating models to observed experimental data in the referenced papers. diff --git a/pybamm/input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/__init__.py b/pybamm/input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/parameters.csv b/pybamm/input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/parameters.csv deleted file mode 100644 index e9a8b381a1..0000000000 --- a/pybamm/input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/parameters.csv +++ /dev/null @@ -1,11 +0,0 @@ -Name [units],Value,Reference,Notes -,,, -,,, -# Lithium plating parameters,,, -Lithium metal partial molar volume [m3.mol-1],1.30E-05,Yang2017, -Lithium plating kinetic rate constant [m.s-1],1E-10,, -Exchange-current density for plating [A.m-2],[function]plating_exchange_current_density_OKane2020,, -Exchange-current density for stripping [A.m-2],[function]stripping_exchange_current_density_OKane2020,, -Initial plated lithium concentration [mol.m-3],0.00E+00,, -Typical plated lithium concentration [mol.m-3],1000,1 molar, -Lithium plating transfer coefficient,0.5,, \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/plating_exchange_current_density_OKane2020.py b/pybamm/input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/plating_exchange_current_density_OKane2020.py deleted file mode 100644 index 06db70d846..0000000000 --- a/pybamm/input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/plating_exchange_current_density_OKane2020.py +++ /dev/null @@ -1,29 +0,0 @@ -from pybamm import constants, Parameter - - -def plating_exchange_current_density_OKane2020(c_e, c_Li, T): - """ - Exchange-current density for Li plating reaction [A.m-2]. - References - ---------- - .. [1] O’Kane, Simon EJ, Ian D. Campbell, Mohamed WJ Marzook, Gregory J. Offer, and - Monica Marinescu. "Physical origin of the differential voltage minimum associated - with lithium plating in Li-ion batteries." Journal of The Electrochemical Society - 167, no. 9 (2020): 090540. - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_Li : :class:`pybamm.Symbol` - Plated lithium concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - - k_plating = Parameter("Lithium plating kinetic rate constant [m.s-1]") - - return constants.F * k_plating * c_e diff --git a/pybamm/input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/stripping_exchange_current_density_OKane2020.py b/pybamm/input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/stripping_exchange_current_density_OKane2020.py deleted file mode 100644 index 7ea44e9c01..0000000000 --- a/pybamm/input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/stripping_exchange_current_density_OKane2020.py +++ /dev/null @@ -1,35 +0,0 @@ -from pybamm import constants, Parameter - - -def stripping_exchange_current_density_OKane2020(c_e, c_Li, T): - """ - Exchange-current density for Li stripping reaction [A.m-2]. - - References - ---------- - - .. [1] O’Kane, Simon EJ, Ian D. Campbell, Mohamed WJ Marzook, Gregory J. Offer, and - Monica Marinescu. "Physical origin of the differential voltage minimum associated - with lithium plating in Li-ion batteries." Journal of The Electrochemical Society - 167, no. 9 (2020): 090540. - - Parameters - ---------- - - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_Li : :class:`pybamm.Symbol` - Plated lithium concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - - k_plating = Parameter("Lithium plating kinetic rate constant [m.s-1]") - - return constants.F * k_plating * c_Li diff --git a/pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/README.md b/pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/README.md deleted file mode 100644 index 82095310dc..0000000000 --- a/pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Lithium plating parameters - -Some example parameters for lithium plating from the paper: - -> Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. ["Lithium-ion battery degradation: how to model it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical Chemistry: Chemical Physics 24 (2022): 7909-7922 - -and references therein. - -Note: this parameter set does not claim to be representative of the true parameter values. These are merely the parameter values that were used in the referenced papers. diff --git a/pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/SEI_limited_dead_lithium_OKane2022.py b/pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/SEI_limited_dead_lithium_OKane2022.py deleted file mode 100644 index 40e3906065..0000000000 --- a/pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/SEI_limited_dead_lithium_OKane2022.py +++ /dev/null @@ -1,30 +0,0 @@ -from pybamm import Parameter - - -def SEI_limited_dead_lithium_OKane2022(L_sei): - """ - Decay rate for dead lithium formation [s-1]. - References - ---------- - .. [1] Simon E. J. O'Kane, Weilong Ai, Ganesh Madabattula, Diega Alonso-Alvarez, - Robert Timms, Valentin Sulzer, Jaqueline Sophie Edge, Billy Wu, Gregory J. Offer - and Monica Marinescu. "Lithium-ion battery degradation: how to model it." - Physical Chemistry: Chemical Physics 24, no. 13 (2022): 7909-7922. - Parameters - ---------- - L_sei : :class:`pybamm.Symbol` - Total SEI thickness [m] - Returns - ------- - :class:`pybamm.Symbol` - Dead lithium decay rate [s-1] - """ - - gamma_0 = Parameter("Dead lithium decay constant [s-1]") - L_inner_0 = Parameter("Initial inner SEI thickness [m]") - L_outer_0 = Parameter("Initial outer SEI thickness [m]") - L_sei_0 = L_inner_0 + L_outer_0 - - gamma = gamma_0 * L_sei_0 / L_sei - - return gamma diff --git a/pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/__init__.py b/pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/parameters.csv b/pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/parameters.csv deleted file mode 100644 index 250ee33c39..0000000000 --- a/pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/parameters.csv +++ /dev/null @@ -1,13 +0,0 @@ -Name [units],Value,Reference,Notes -,,, -,,, -# Lithium plating parameters,,, -Lithium metal partial molar volume [m3.mol-1],1.30E-05,Yang2017, -Lithium plating kinetic rate constant [m.s-1],1E-9,, -Exchange-current density for plating [A.m-2],[function]plating_exchange_current_density_OKane2020,, -Exchange-current density for stripping [A.m-2],[function]stripping_exchange_current_density_OKane2020,, -Initial plated lithium concentration [mol.m-3],0.00E+00,, -Typical plated lithium concentration [mol.m-3],1000,1 molar, -Lithium plating transfer coefficient,0.65,, -Dead lithium decay constant [s-1],1E-6,, -Dead lithium decay rate [s-1],[function]SEI_limited_dead_lithium_OKane2022,, \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/plating_exchange_current_density_OKane2020.py b/pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/plating_exchange_current_density_OKane2020.py deleted file mode 100644 index 06db70d846..0000000000 --- a/pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/plating_exchange_current_density_OKane2020.py +++ /dev/null @@ -1,29 +0,0 @@ -from pybamm import constants, Parameter - - -def plating_exchange_current_density_OKane2020(c_e, c_Li, T): - """ - Exchange-current density for Li plating reaction [A.m-2]. - References - ---------- - .. [1] O’Kane, Simon EJ, Ian D. Campbell, Mohamed WJ Marzook, Gregory J. Offer, and - Monica Marinescu. "Physical origin of the differential voltage minimum associated - with lithium plating in Li-ion batteries." Journal of The Electrochemical Society - 167, no. 9 (2020): 090540. - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_Li : :class:`pybamm.Symbol` - Plated lithium concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - - k_plating = Parameter("Lithium plating kinetic rate constant [m.s-1]") - - return constants.F * k_plating * c_e diff --git a/pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/stripping_exchange_current_density_OKane2020.py b/pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/stripping_exchange_current_density_OKane2020.py deleted file mode 100644 index 7ea44e9c01..0000000000 --- a/pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/stripping_exchange_current_density_OKane2020.py +++ /dev/null @@ -1,35 +0,0 @@ -from pybamm import constants, Parameter - - -def stripping_exchange_current_density_OKane2020(c_e, c_Li, T): - """ - Exchange-current density for Li stripping reaction [A.m-2]. - - References - ---------- - - .. [1] O’Kane, Simon EJ, Ian D. Campbell, Mohamed WJ Marzook, Gregory J. Offer, and - Monica Marinescu. "Physical origin of the differential voltage minimum associated - with lithium plating in Li-ion batteries." Journal of The Electrochemical Society - 167, no. 9 (2020): 090540. - - Parameters - ---------- - - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_Li : :class:`pybamm.Symbol` - Plated lithium concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - - k_plating = Parameter("Lithium plating kinetic rate constant [m.s-1]") - - return constants.F * k_plating * c_Li diff --git a/pybamm/input/parameters/lithium_ion/lithium_platings/yang2017_Li_plating/README.md b/pybamm/input/parameters/lithium_ion/lithium_platings/yang2017_Li_plating/README.md deleted file mode 100644 index 77f87c694f..0000000000 --- a/pybamm/input/parameters/lithium_ion/lithium_platings/yang2017_Li_plating/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# SEI parameters - -Parameters for lithium plating from the paper: - -> Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium plating induced aging of lithium-ion batteries: Transition from linear to nonlinear aging. Journal of Power Sources, 360, 28-40. diff --git a/pybamm/input/parameters/lithium_ion/lithium_platings/yang2017_Li_plating/parameters.csv b/pybamm/input/parameters/lithium_ion/lithium_platings/yang2017_Li_plating/parameters.csv deleted file mode 100644 index c14d3ce7cd..0000000000 --- a/pybamm/input/parameters/lithium_ion/lithium_platings/yang2017_Li_plating/parameters.csv +++ /dev/null @@ -1,9 +0,0 @@ -Name [units],Value,Reference,Notes -,,, -,,, -# Lithium plating parameters,,, -Lithium metal partial molar volume [m3.mol-1],1.30E-05,Yang2017,6.94e-3/534 -Exchange-current density for plating [A.m-2],0.001,, -Initial plated lithium concentration [mol.m-3],0.00E+00,, -Typical plated lithium concentration [mol.m-3],1000,1 molar, -Lithium plating transfer coefficient,0.7,, \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/README.md b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/README.md deleted file mode 100644 index fb7e086d5c..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# LG M50 Graphite negative electrode parameters - -Parameters for a LG M50 graphite negative electrode, from the paper - -> Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for Parameterization of Multi-scale Lithium-ion Battery Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of the Electrochemical Society 167 (2020): 080534 - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/__init__.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/graphite_LGM50_electrolyte_exchange_current_density_Chen2020.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/graphite_LGM50_electrolyte_exchange_current_density_Chen2020.py deleted file mode 100644 index 03ff68b00d..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/graphite_LGM50_electrolyte_exchange_current_density_Chen2020.py +++ /dev/null @@ -1,40 +0,0 @@ -from pybamm import exp, constants - - -def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( - c_e, c_s_surf, c_s_max, T -): - """ - Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in - EC:DMC. - - References - ---------- - .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the - Electrochemical Society 167 (2020): 080534. - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_s_surf : :class:`pybamm.Symbol` - Particle concentration [mol.m-3] - c_s_max : :class:`pybamm.Symbol` - Maximum particle concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - m_ref = 6.48e-7 # (A/m2)(mol/m3)**1.5 - includes ref concentrations - E_r = 35000 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - - return ( - m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 - ) diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/graphite_LGM50_ocp_Chen2020.csv b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/graphite_LGM50_ocp_Chen2020.csv deleted file mode 100644 index fe4dd8b61d..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/graphite_LGM50_ocp_Chen2020.csv +++ /dev/null @@ -1,243 +0,0 @@ -# OCP data for LG M50 graphite negative electrode -# sto,ocp -# extra point to avoid extrapolation -0,1.81772748379334 -# experimentally measured data -0.0312962309919435,1.08288070000000 -0.0349990174231383,0.995937940000000 -0.0387017984426739,0.900233980000000 -0.0424045760400907,0.796494310000000 -0.0461073567667969,0.733544290000000 -0.0498101472864833,0.666643140000000 -0.0535129169550513,0.641371490000000 -0.0572156800080452,0.598138690000000 -0.0609184495648372,0.567083600000000 -0.0646212178896581,0.547461810000000 -0.0683239899372943,0.530683990000000 -0.0720267516206726,0.513047340000000 -0.0757295119643203,0.493940920000000 -0.0794322723972667,0.479262740000000 -0.0831350309398288,0.460652590000000 -0.0868377862970441,0.459927260000000 -0.0905405444092937,0.438015010000000 -0.0942433124962634,0.424386650000000 -0.0979460700715639,0.411502690000000 -0.101648825029857,0.400336590000000 -0.105351579051700,0.389571340000000 -0.109054336366249,0.377565380000000 -0.112757097430127,0.362925410000000 -0.116459849153289,0.343570860000000 -0.120162608086248,0.340631400000000 -0.123865356984332,0.322994680000000 -0.127568112208028,0.313794580000000 -0.131270864460474,0.307953860000000 -0.134973620696607,0.292073190000000 -0.138676382618935,0.286976870000000 -0.142379130218803,0.274054770000000 -0.146081890204289,0.267049700000000 -0.149784649866357,0.258574930000000 -0.153487405398072,0.252657830000000 -0.157190175658005,0.248267770000000 -0.160892939040625,0.241434500000000 -0.164595700624986,0.233627780000000 -0.168298470128353,0.229562180000000 -0.172001223759462,0.223702360000000 -0.175703987585269,0.221812710000000 -0.179406738528351,0.220896510000000 -0.183109501186799,0.219426800000000 -0.186812285743759,0.218300640000000 -0.190515043988865,0.218453330000000 -0.194217798449951,0.217537150000000 -0.197920560933317,0.217193570000000 -0.201623337530448,0.216353730000000 -0.205326099907333,0.216678220000000 -0.209028863421514,0.217384440000000 -0.212731637811268,0.214693130000000 -0.216434400018689,0.215418460000000 -0.220137158758552,0.214654950000000 -0.223839932905728,0.213547900000000 -0.227542704859571,0.213929640000000 -0.231245472941435,0.210742060000000 -0.234948246608884,0.208737880000000 -0.238651007030528,0.204653190000000 -0.242353771096756,0.202057320000000 -0.246056534779736,0.197743580000000 -0.249759296042551,0.194441470000000 -0.253462075305427,0.191902850000000 -0.257164855541649,0.188505310000000 -0.260867623398810,0.185813990000000 -0.264570388343682,0.183275370000000 -0.268273141960127,0.181576590000000 -0.271975899008113,0.178140880000000 -0.275678670804876,0.175296860000000 -0.279381437563501,0.171937500000000 -0.283084208890615,0.169341610000000 -0.286786983838099,0.167566490000000 -0.290489741421874,0.166096760000000 -0.294192511321947,0.164149850000000 -0.297895287824777,0.162603780000000 -0.301598064066139,0.162241130000000 -0.305300829766264,0.160027000000000 -0.309003605818808,0.158270960000000 -0.312706366234020,0.158805400000000 -0.316409128935726,0.155522380000000 -0.320111892208735,0.155808690000000 -0.323814657710233,0.152201180000000 -0.327517439807890,0.151113200000000 -0.331220205464159,0.149872530000000 -0.334922968466154,0.148746370000000 -0.338625750725335,0.146780370000000 -0.342328527763104,0.146207760000000 -0.346031309868876,0.145558790000000 -0.349734084397854,0.143898190000000 -0.353436854897322,0.143592790000000 -0.357139627707061,0.142428460000000 -0.360842411597988,0.140386120000000 -0.364545174861915,0.138820960000000 -0.368247948241878,0.139546280000000 -0.371950714867844,0.139469920000000 -0.375653482399388,0.137809340000000 -0.379356259818551,0.139737140000000 -0.383059044551139,0.136988580000000 -0.386761819665088,0.135232540000000 -0.390464596573676,0.134411780000000 -0.394167374371778,0.135289800000000 -0.397870146744550,0.135079850000000 -0.401572911082096,0.136473210000000 -0.405275673810652,0.136015120000000 -0.408978444047454,0.134354520000000 -0.412681205117036,0.133476500000000 -0.416383982346429,0.134831700000000 -0.420086760850234,0.132751180000000 -0.423789528171715,0.132865710000000 -0.427492295549261,0.132636670000000 -0.431195060865253,0.134564470000000 -0.434897836788305,0.134717180000000 -0.438600610939060,0.133953690000000 -0.442303381655562,0.134488140000000 -0.446006148119762,0.133476500000000 -0.449708925504862,0.132980230000000 -0.453411684191202,0.132598490000000 -0.457114440916438,0.133381070000000 -0.460817193028781,0.133094760000000 -0.464519943384457,0.132751180000000 -0.468222694005807,0.134430870000000 -0.471925449273306,0.133152020000000 -0.475628214901007,0.132713000000000 -0.479330982475788,0.133018400000000 -0.483033746549207,0.132789360000000 -0.486736511451955,0.132254910000000 -0.490439263445418,0.133171110000000 -0.494142032545160,0.132636670000000 -0.497844816626510,0.131873160000000 -0.501547587896339,0.132655740000000 -0.505250356183052,0.132503050000000 -0.508953105923419,0.133247450000000 -0.512655855186197,0.132044960000000 -0.516358614974852,0.132426690000000 -0.520061385641280,0.132331270000000 -0.523764153672818,0.131987690000000 -0.527466921773724,0.132541220000000 -0.531169691411363,0.131453250000000 -0.534872451405134,0.132980230000000 -0.538575207372981,0.131682290000000 -0.542277974391093,0.131357800000000 -0.545980740352798,0.132350360000000 -0.549683501204733,0.131205110000000 -0.553386270215891,0.130899710000000 -0.557089019988434,0.131090580000000 -0.560791784265352,0.130823360000000 -0.564494537080197,0.130117130000000 -0.568197299191212,0.129869000000000 -0.571900057449854,0.129926260000000 -0.575602818473649,0.129429980000000 -0.579305581898489,0.127960260000000 -0.583008351078542,0.128628310000000 -0.586711119160506,0.126566890000000 -0.590413885866284,0.127349470000000 -0.594116641691466,0.125097160000000 -0.597819411981392,0.121107910000000 -0.601522182187787,0.118397510000000 -0.605224955391117,0.112442260000000 -0.608927723682774,0.113072140000000 -0.612630478412401,0.109216500000000 -0.616333249893282,0.106830580000000 -0.620036027033193,0.104330140000000 -0.623738797952401,0.105303590000000 -0.627441562394607,0.100569930000000 -0.631144325925059,0.0995010440000000 -0.634847114512325,0.0985466760000000 -0.638549884221743,0.0992147330000000 -0.642252650586067,0.0954163520000000 -0.645955430101924,0.0998064350000000 -0.649658231687418,0.0986611990000000 -0.653361004502960,0.0956072210000000 -0.657063774662737,0.0975541320000000 -0.660766563716793,0.0961225850000000 -0.664469339353229,0.0943092850000000 -0.668172119080598,0.0966188540000000 -0.671874891156802,0.0936603170000000 -0.675577670252883,0.0952254760000000 -0.679280441499295,0.0953590870000000 -0.682983220191922,0.0931640420000000 -0.686686001640506,0.0945001620000000 -0.690388778900278,0.0930876960000000 -0.694091555474028,0.0934312640000000 -0.697794325005044,0.0932403950000000 -0.701497093656894,0.0935076180000000 -0.705199875232905,0.0933930950000000 -0.708902639071993,0.0929159080000000 -0.712605404436496,0.0930304300000000 -0.716308184771416,0.0926295970000000 -0.720010954088915,0.0932403950000000 -0.723713711354927,0.0926105160000000 -0.727416483536807,0.0924959850000000 -0.731119252071337,0.0924005510000000 -0.734822035630127,0.0925341620000000 -0.738524799807680,0.0920951520000000 -0.742227568105003,0.0923432860000000 -0.745930339816929,0.0936603170000000 -0.749633118921535,0.0933358300000000 -0.753335891546580,0.0932213070000000 -0.757038684517004,0.0926486850000000 -0.760741459961769,0.0925341620000000 -0.764444224136151,0.0924387280000000 -0.768146984167905,0.0923051160000000 -0.771849759741077,0.0931067840000000 -0.775552533080109,0.0916561480000000 -0.779255307772044,0.0915988830000000 -0.782958072926225,0.0920760630000000 -0.786660852552783,0.0917515830000000 -0.790363639414952,0.0917706710000000 -0.794066406798143,0.0923623740000000 -0.797769180570730,0.0924196390000000 -0.801471972061922,0.0932022180000000 -0.805174740205057,0.0919997170000000 -0.808877513470830,0.0916752290000000 -0.812580278330776,0.0932213070000000 -0.816283043054478,0.0919042830000000 -0.819985807095308,0.0916752290000000 -0.823688581889439,0.0928586500000000 -0.827391362903273,0.0918088410000000 -0.831094111514778,0.0915034490000000 -0.834796875363559,0.0918661060000000 -0.838499653966946,0.0920188050000000 -0.842202418107843,0.0932022180000000 -0.845905185427703,0.0913125720000000 -0.849607966269499,0.0911789610000000 -0.853310746424072,0.0913316610000000 -0.857013527063463,0.0908926500000000 -0.860716308996327,0.0905872510000000 -0.864419073626463,0.0905109050000000 -0.868121860558204,0.0903391170000000 -0.871824644664188,0.0904154700000000 -0.875527415820355,0.0911216960000000 -0.879230192607003,0.0894611030000000 -0.882932957631799,0.0899955480000000 -0.886635727806255,0.0892129690000000 -0.890338494102966,0.0888121280000000 -0.894041256363904,0.0879722910000000 -0.897744036942199,0.0870942700000000 -0.901446800739041,0.0850328360000000 -# extra point to avoid extrapolation -1,0.0760153081792987 \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/graphite_LGM50_ocp_Chen2020.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/graphite_LGM50_ocp_Chen2020.py deleted file mode 100644 index 8a9b90c8a2..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/graphite_LGM50_ocp_Chen2020.py +++ /dev/null @@ -1,35 +0,0 @@ -from pybamm import exp, tanh - - -def graphite_LGM50_ocp_Chen2020(sto): - """ - LG M50 Graphite open-circuit potential as a function of stochiometry, fit taken - from [1]. - - References - ---------- - .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the - Electrochemical Society 167 (2020): 080534. - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - - Returns - ------- - :class:`pybamm.Symbol` - Open circuit potential - """ - - u_eq = ( - 1.9793 * exp(-39.3631 * sto) - + 0.2482 - - 0.0909 * tanh(29.8538 * (sto - 0.1234)) - - 0.04478 * tanh(14.9159 * (sto - 0.2769)) - - 0.0205 * tanh(30.4444 * (sto - 0.6103)) - ) - - return u_eq diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/parameters.csv b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/parameters.csv deleted file mode 100644 index 1681f847b2..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/parameters.csv +++ /dev/null @@ -1,30 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrode properties,,, -Negative electrode conductivity [S.m-1],215,Chen 2020,graphite -Maximum concentration in negative electrode [mol.m-3],33133,Chen 2020,tuned for 1C -Negative electrode diffusivity [m2.s-1],3.3E-14,Chen 2020,tuned for 1C -Negative electrode OCP [V],[function]graphite_LGM50_ocp_Chen2020,Chen 2020, -,,, -# Microstructure,,, -Negative electrode porosity,0.25,Chen 2020, -Negative electrode active material volume fraction,0.75,Chen 2020, -Negative particle radius [m],5.86E-6,Chen 2020, -Negative electrode Bruggeman coefficient (electrolyte),1.5,Chen 2020,theoretical -Negative electrode Bruggeman coefficient (electrode),1.5,default, -,,, -# Interfacial reactions,,, -Negative electrode cation signed stoichiometry,-1,, -Negative electrode electrons in reaction,1,, -Negative electrode charge transfer coefficient,0.5,Chen 2020, -Negative electrode double-layer capacity [F.m-2],0.2,, -Negative electrode exchange-current density [A.m-2],[function]graphite_LGM50_electrolyte_exchange_current_density_Chen2020,, -,,, -# Density,,, -Negative electrode density [kg.m-3],1657,default, -,,, -# Thermal parameters,,, -Negative electrode specific heat capacity [J.kg-1.K-1],700,default, -Negative electrode thermal conductivity [W.m-1.K-1],1.7,default, -Negative electrode OCP entropic change [V.K-1],0,, diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/README.md b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/README.md deleted file mode 100644 index 23562c76c6..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Graphite/silicon negative electrode parameters - -Parameters for a composite graphite/silicon negative electrode, from the paper - -> Ai, W., Kirkaldy, N., Jiang, Y., Offer, G., Wang, H., & Wu, B. (2022). A composite electrode model for lithium-ion batteries with silicon/graphite negative electrodes. Journal of Power Sources, 527, 231142. - -based on the paper - -> Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for Parameterization of Multi-scale Lithium-ion Battery Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of the Electrochemical Society 167 (2020): 080534 - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/__init__.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/graphite_LGM50_electrolyte_exchange_current_density_Chen2020.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/graphite_LGM50_electrolyte_exchange_current_density_Chen2020.py deleted file mode 100644 index 03ff68b00d..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/graphite_LGM50_electrolyte_exchange_current_density_Chen2020.py +++ /dev/null @@ -1,40 +0,0 @@ -from pybamm import exp, constants - - -def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( - c_e, c_s_surf, c_s_max, T -): - """ - Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in - EC:DMC. - - References - ---------- - .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the - Electrochemical Society 167 (2020): 080534. - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_s_surf : :class:`pybamm.Symbol` - Particle concentration [mol.m-3] - c_s_max : :class:`pybamm.Symbol` - Maximum particle concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - m_ref = 6.48e-7 # (A/m2)(mol/m3)**1.5 - includes ref concentrations - E_r = 35000 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - - return ( - m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 - ) diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/graphite_ocp_Enertech_Ai2020.csv b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/graphite_ocp_Enertech_Ai2020.csv deleted file mode 100644 index 8a5bce2874..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/graphite_ocp_Enertech_Ai2020.csv +++ /dev/null @@ -1,129 +0,0 @@ -# OCP for graphite from Ai 2020 -# sto,ocp [V] -# extra point to avoid extrapolation -0,3.5 -# experimentally measured data -0.0005,3 -0.00127041,1.04 -0.00152479,1.01 -0.00190595,0.972653837 -0.002223558,0.94249055 -0.004060547,0.816240592 -0.004820151,0.780280928 -0.006463943,0.71896262 -0.00741337,0.691374757 -0.008616506,0.661391781 -0.009123417,0.649962232 -0.010768226,0.6165173 -0.012665046,0.583310858 -0.014118344,0.560830783 -0.017786752,0.512439476 -0.02069469,0.48025136 -0.023983799,0.448495867 -0.030502175,0.39598881 -0.036001135,0.359507681 -0.039606662,0.338477981 -0.059148083,0.256319558 -0.061297942,0.25117361 -0.071349833,0.236055324 -0.080265526,0.231009217 -0.119208079,0.2232966 -0.128120548,0.218284244 -0.134253707,0.213273859 -0.141584594,0.208228362 -0.150874177,0.203209739 -0.160609131,0.198620985 -0.170345957,0.193816376 -0.189747769,0.184166915 -0.209222253,0.176790532 -0.21901773,0.173830441 -0.228756579,0.170963261 -0.238552575,0.167903501 -0.248349231,0.164649979 -0.258084023,0.161491332 -0.267821184,0.15859383 -0.28741535,0.153399157 -0.297209811,0.151002319 -0.307004942,0.14886213 -0.316798396,0.146918911 -0.326534032,0.145328142 -0.336321558,0.144002109 -0.346061758,0.142902125 -0.355856392,0.142014262 -0.365593044,0.141316008 -0.375388012,0.140759105 -0.385120781,0.140314323 -0.394915577,0.139942322 -0.404717479,0.139617851 -0.414512102,0.139325406 -0.424244871,0.139051014 -0.434039331,0.138779297 -0.44377024,0.138517413 -0.453564862,0.138258897 -0.463298139,0.137981293 -0.473034456,0.137672226 -0.482766544,0.137329325 -0.492564552,0.136903224 -0.502302892,0.136390244 -0.512042595,0.135757581 -0.521833161,0.134947101 -0.531572182,0.133923235 -0.541369033,0.132621681 -0.551104831,0.130989474 -0.5608998,0.128964924 -0.570635608,0.126549987 -0.580434806,0.123742878 -0.590235692,0.120770834 -0.599977407,0.117929634 -0.609716266,0.115379983 -0.619517822,0.113205423 -0.629313635,0.111366477 -0.639049108,0.109855495 -0.648790152,0.108578952 -0.658584104,0.107520678 -0.668320248,0.106632536 -0.67805504,0.105893758 -0.687851869,0.105260613 -0.69764938,0.104713189 -0.707389072,0.104254365 -0.717188097,0.103845625 -0.726977148,0.103477119 -0.736776336,0.103153932 -0.746515866,0.102856541 -0.756259106,0.102587443 -0.766055091,0.102338279 -0.775789039,0.102101986 -0.785537861,0.101880905 -0.79532979,0.101676423 -0.805080646,0.101465878 -0.814827099,0.101264171 -0.824570003,0.101062635 -0.834370889,0.10087041 -0.844173289,0.10068096 -0.853913187,0.100489223 -0.86365051,0.100300437 -0.873392073,0.100099718 -0.883126865,0.099877104 -0.892918286,0.099628985 -0.902708516,0.099332616 -0.912443308,0.098958419 -0.922232533,0.098442542 -0.932019724,0.097683643 -0.941812832,0.096492 -0.951602392,0.094510791 -0.961392795,0.091136817 -0.970177652,0.086115186 -0.976051358,0.081078748 -0.980413449,0.07604037 -0.983887804,0.070991535 -0.986792703,0.065898328 -0.989255096,0.060844047 -0.991401407,0.055810118 -0.993359929,0.050670698 -0.995130154,0.045562401 -0.996776304,0.040392663 -0.99822944,0.035261272 -0.999241066,0.030242658 -0.999746961,0.024850768 -0.999936448,0.019251502 -1,0.004994678 \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/parameters.csv b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/parameters.csv deleted file mode 100644 index f6bd8704ad..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/parameters.csv +++ /dev/null @@ -1,54 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrode properties,,, -Negative electrode conductivity [S.m-1],215,Chen 2020,graphite -Primary: Maximum concentration in negative electrode [mol.m-3],28700,Chen 2020,tuned for 1C -Primary: Initial concentration in negative electrode [mol.m-3],27700,, -Primary: Negative electrode diffusivity [m2.s-1],5.5E-14,Chen 2020,tuned for 1C -Primary: Negative electrode OCP [V],[data]graphite_ocp_Enertech_Ai2020,Chen 2020, -,,, -# Microstructure,,, -Negative electrode porosity,0.25,Chen 2020, -Primary: Negative electrode active material volume fraction,0.735,0.75*0.98 -Primary: Negative particle radius [m],5.86E-6,Chen 2020, -Negative electrode Bruggeman coefficient (electrolyte),1.5,Chen 2020,theoretical -Negative electrode Bruggeman coefficient (electrode),1.5,default, -,,, -# Interfacial reactions,,, -Negative electrode cation signed stoichiometry,-1,, -Primary: Negative electrode electrons in reaction,1,, -Negative electrode charge transfer coefficient,0.5,Chen 2020, -Negative electrode double-layer capacity [F.m-2],0.2,, -Primary: Negative electrode exchange-current density [A.m-2],[function]graphite_LGM50_electrolyte_exchange_current_density_Chen2020,, -,,, -# Density,,, -Primary: Negative electrode density [kg.m-3],1657,default, -,,, -# Thermal parameters,,, -Negative electrode specific heat capacity [J.kg-1.K-1],700,default, -Negative electrode thermal conductivity [W.m-1.K-1],1.7,default, -Primary: Negative electrode OCP entropic change [V.K-1],0,, -,,, -,,, -# Secondary particles (silicon) -# Electrode properties,,, -Secondary: Maximum concentration in negative electrode [mol.m-3],278000,, -Secondary: Initial concentration in negative electrode [mol.m-3],276610,, -Secondary: Negative electrode diffusivity [m2.s-1],1.67E-14,, -Secondary: Negative electrode lithiation OCP [V],[function]silicon_ocp_lithiation_Mark2016,, -Secondary: Negative electrode delithiation OCP [V],[function]silicon_ocp_delithiation_Mark2016,, -,,, -# Microstructure,,, -Secondary: Negative electrode active material volume fraction,0.015,,0.75*0.02 -Secondary: Negative particle radius [m],1.52E-6,, -,,, -# Interfacial reactions,,, -Secondary: Negative electrode electrons in reaction,1,, -Secondary: Negative electrode exchange-current density [A.m-2],[function]silicon_LGM50_electrolyte_exchange_current_density_Chen2020,, -,,, -# Density,,, -Secondary: Negative electrode density [kg.m-3],2650,, -,,, -# Thermal parameters,,, -Secondary: Negative electrode OCP entropic change [V.K-1],0,, \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/silicon_LGM50_electrolyte_exchange_current_density_Chen2020.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/silicon_LGM50_electrolyte_exchange_current_density_Chen2020.py deleted file mode 100644 index 42a810bc92..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/silicon_LGM50_electrolyte_exchange_current_density_Chen2020.py +++ /dev/null @@ -1,43 +0,0 @@ -from pybamm import exp, constants - - -def silicon_LGM50_electrolyte_exchange_current_density_Chen2020( - c_e, c_s_surf, c_s_max, T -): - """ - Exchange-current density for Butler-Volmer reactions between silicon and LiPF6 in - EC:DMC. - - References - ---------- - .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the - Electrochemical Society 167 (2020): 080534. - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_s_surf : :class:`pybamm.Symbol` - Particle concentration [mol.m-3] - c_s_max : :class:`pybamm.Symbol` - Maximum particle concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - - m_ref = ( - 6.48e-7 * 28700 / 278000 - ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations - E_r = 35000 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - - return ( - m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 - ) diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/silicon_ocp_data_Mark2016.csv b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/silicon_ocp_data_Mark2016.csv deleted file mode 100644 index c242c41a25..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/silicon_ocp_data_Mark2016.csv +++ /dev/null @@ -1,61 +0,0 @@ -#SOC_lit V_lit SOC_delit V_delit SOC_avg V_avg -0.0028864 0.877565 0.0028864 0.98404 0.0028864 0.9308025 -0.019830527 0.639348619 0.019830527 0.926149879 0.019830527 0.782749249 -0.036774653 0.559521936 0.036774653 0.870794639 0.036774653 0.715158288 -0.05371878 0.503340001 0.05371878 0.828136636 0.05371878 0.665738318 -0.070662906 0.452149142 0.070662906 0.791728639 0.070662906 0.621938891 -0.087607033 0.41396487 0.087607033 0.761420557 0.087607033 0.587692714 -0.104551159 0.378125085 0.104551159 0.733499923 0.104551159 0.555812504 -0.121495286 0.353343587 0.121495286 0.706921047 0.121495286 0.530132317 -0.138439412 0.329513392 0.138439412 0.680887638 0.138439412 0.505200515 -0.155383539 0.314284395 0.155383539 0.659588161 0.155383539 0.486936278 -0.172327666 0.299055398 0.172327666 0.63954143 0.172327666 0.469298414 -0.189271792 0.288012003 0.189271792 0.62101524 0.189271792 0.454513621 -0.206215919 0.280073198 0.206215919 0.603055551 0.206215919 0.441564374 -0.223160045 0.273151453 0.223160045 0.586471232 0.223160045 0.429811343 -0.240104172 0.266977277 0.240104172 0.570614824 0.240104172 0.41879605 -0.257048298 0.261015793 0.257048298 0.557071177 0.257048298 0.409043485 -0.273992425 0.255126668 0.273992425 0.544673882 0.273992425 0.399900275 -0.290936551 0.249540888 0.290936551 0.533356547 0.290936551 0.391448718 -0.307880678 0.244671154 0.307880678 0.522777511 0.307880678 0.383724332 -0.324824805 0.23980142 0.324824805 0.51279163 0.324824805 0.376296525 -0.341768931 0.235528262 0.341768931 0.50419114 0.341768931 0.369859701 -0.358713058 0.231534022 0.358713058 0.495639015 0.358713058 0.363586518 -0.375657184 0.227591384 0.375657184 0.487366223 0.375657184 0.357478804 -0.392601311 0.223929464 0.392601311 0.479188892 0.392601311 0.351559178 -0.409545437 0.220267544 0.409545437 0.472033799 0.409545437 0.346150672 -0.426489564 0.21622645 0.426489564 0.464878706 0.426489564 0.340552578 -0.44343369 0.211609822 0.44343369 0.457049146 0.44343369 0.334329484 -0.460377817 0.206993193 0.460377817 0.449117738 0.460377817 0.328055466 -0.477321944 0.201770163 0.477321944 0.440413865 0.477321944 0.321092014 -0.49426607 0.196205645 0.49426607 0.431404504 0.49426607 0.313805075 -0.511210197 0.190641127 0.511210197 0.421865663 0.511210197 0.306253395 -0.528154323 0.184861893 0.528154323 0.412191443 0.528154323 0.298526668 -0.54509845 0.178922055 0.54509845 0.401831839 0.54509845 0.290376947 -0.562042576 0.172982216 0.562042576 0.391224104 0.562042576 0.28210316 -0.578986703 0.166269925 0.578986703 0.380575674 0.578986703 0.2734228 -0.595930829 0.159158906 0.595930829 0.369898017 0.595930829 0.264528461 -0.612874956 0.151993753 0.612874956 0.359682518 0.612874956 0.255838135 -0.629819082 0.14392544 0.629819082 0.350048229 0.629819082 0.246986835 -0.646763209 0.135857126 0.646763209 0.341270063 0.646763209 0.238563595 -0.663707336 0.129288788 0.663707336 0.33327359 0.663707336 0.231281189 -0.680651462 0.123187943 0.680651462 0.325601376 0.680651462 0.224394659 -0.697595589 0.117087098 0.697595589 0.318207506 0.697595589 0.217647302 -0.714539715 0.112842294 0.714539715 0.311116446 0.714539715 0.21197937 -0.731483842 0.108744266 0.731483842 0.305034685 0.731483842 0.206889476 -0.748427968 0.104669816 0.748427968 0.298952925 0.748427968 0.201811371 -0.765372095 0.100711069 0.765372095 0.293273917 0.765372095 0.196992493 -0.782316221 0.096752321 0.782316221 0.287660605 0.782316221 0.192206463 -0.799260348 0.093077182 0.799260348 0.281975955 0.799260348 0.187526568 -0.816204475 0.090223022 0.816204475 0.276148813 0.816204475 0.183185917 -0.833148601 0.087368863 0.833148601 0.27032167 0.833148601 0.178845267 -0.850092728 0.084074774 0.850092728 0.264204854 0.850092728 0.174139814 -0.867036854 0.080618479 0.867036854 0.257934149 0.867036854 0.169276314 -0.883980981 0.077162185 0.883980981 0.251663443 0.883980981 0.164412814 -0.900925107 0.073724413 0.900925107 0.244558535 0.900925107 0.159141474 -0.917869234 0.070683533 0.917869234 0.23702954 0.917869234 0.153856536 -0.93481336 0.067642653 0.93481336 0.226643076 0.93481336 0.147142864 -0.951757487 0.063113497 0.951757487 0.214257079 0.951757487 0.138685288 -0.968701614 0.057863063 0.968701614 0.194591752 0.968701614 0.126227407 -0.98564574 0.054363042 0.98564574 0.162358022 0.98564574 0.108360532 -1.002589867 0.05247 1.002589867 0.06088 1.002589867 0.056675 diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/silicon_ocp_delithiation_Mark2016.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/silicon_ocp_delithiation_Mark2016.py deleted file mode 100644 index adc488770d..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/silicon_ocp_delithiation_Mark2016.py +++ /dev/null @@ -1,42 +0,0 @@ -def silicon_ocp_delithiation_Mark2016(sto): - """ - silicon Open Circuit Potential (OCP) as a a function of the - stochiometry. The fit is taken from the Enertech cell [1], which is only accurate - for 0 < sto < 1. - - References - ---------- - .. [1] Verbrugge M, Baker D, Xiao X. Formulation for the treatment of multiple - electrochemical reactions and associated speciation for the Lithium-Silicon - electrode[J]. Journal of The Electrochemical Society, 2015, 163(2): A262. - - Parameters - ---------- - sto: double - Stochiometry of material (li-fraction) - - Returns - ------- - :class:`pybamm.Symbol` - OCP [V] - """ - p1 = -51.02 - p2 = 161.3 - p3 = -205.7 - p4 = 140.2 - p5 = -58.76 - p6 = 16.87 - p7 = -3.792 - p8 = 0.9937 - - U_delithiation = ( - p1 * sto**7 - + p2 * sto**6 - + p3 * sto**5 - + p4 * sto**4 - + p5 * sto**3 - + p6 * sto**2 - + p7 * sto - + p8 - ) - return U_delithiation diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/silicon_ocp_lithiation_Mark2016.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/silicon_ocp_lithiation_Mark2016.py deleted file mode 100644 index 9ce92fbc7b..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020_composite/silicon_ocp_lithiation_Mark2016.py +++ /dev/null @@ -1,42 +0,0 @@ -def silicon_ocp_lithiation_Mark2016(sto): - """ - silicon Open Circuit Potential (OCP) as a a function of the - stochiometry. The fit is taken from the Enertech cell [1], which is only accurate - for 0 < sto < 1. - - References - ---------- - .. [1] Verbrugge M, Baker D, Xiao X. Formulation for the treatment of multiple - electrochemical reactions and associated speciation for the Lithium-Silicon - electrode[J]. Journal of The Electrochemical Society, 2015, 163(2): A262. - - Parameters - ---------- - sto: double - Stochiometry of material (li-fraction) - - Returns - ------- - :class:`pybamm.Symbol` - OCP [V] - """ - p1 = -96.63 - p2 = 372.6 - p3 = -587.6 - p4 = 489.9 - p5 = -232.8 - p6 = 62.99 - p7 = -9.286 - p8 = 0.8633 - - U_lithiation = ( - p1 * sto**7 - + p2 * sto**6 - + p3 * sto**5 - + p4 * sto**4 - + p5 * sto**3 - + p6 * sto**2 - + p7 * sto - + p8 - ) - return U_lithiation diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/README.md b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/README.md deleted file mode 100644 index 63a3af5f14..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Graphite negative electrode parameters - -Parameters for a graphite negative electrode, from the papers: - -> Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a lithium-ion battery I. determination of parameters." Journal of the Electrochemical Society 162.9 (2015): A1836-A1848. - -> Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a lithium-ion battery II. Model validation." Journal of The Electrochemical Society 162.9 (2015): A1849-A1857. - -The fits to data for the electrode and electrolyte properties are those provided -by Dr. Simon O’Kane in the paper: - -> Richardson, Giles, et. al. "Generalised single particle models for high-rate operation of graded lithium-ion electrodes: Systematic derivation and validation." Electrochemica Acta 339 (2020): 135862 - -The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data are extracted from - -> Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and surface cooling on lithium ion cell performance."" Journal of The Electrochemical Society, 165.13 (2018): A3169-A3178. diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/__init__.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/graphite_diffusivity_Ecker2015.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/graphite_diffusivity_Ecker2015.py deleted file mode 100644 index 91103baedc..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/graphite_diffusivity_Ecker2015.py +++ /dev/null @@ -1,37 +0,0 @@ -from pybamm import exp, constants - - -def graphite_diffusivity_Ecker2015(sto, T): - """ - Graphite diffusivity as a function of stochiometry [1, 2, 3]. - - References - ---------- - .. [1] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of - a lithium-ion battery i. determination of parameters." Journal of the - Electrochemical Society 162.9 (2015): A1836-A1848. - .. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of - a lithium-ion battery ii. model validation." Journal of The Electrochemical - Society 162.9 (2015): A1849-A1857. - .. [3] Richardson, Giles, et. al. "Generalised single particle models for - high-rate operation of graded lithium-ion electrodes: Systematic derivation - and validation." Electrochemica Acta 339 (2020): 135862 - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - D_ref = 8.4e-13 * exp(-11.3 * sto) + 8.2e-15 - E_D_s = 3.03e4 - arrhenius = exp(-E_D_s / (constants.R * T)) * exp(E_D_s / (constants.R * 296)) - - return D_ref * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/graphite_electrolyte_exchange_current_density_Ecker2015.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/graphite_electrolyte_exchange_current_density_Ecker2015.py deleted file mode 100644 index 4b47ba36b4..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/graphite_electrolyte_exchange_current_density_Ecker2015.py +++ /dev/null @@ -1,48 +0,0 @@ -from pybamm import exp, constants - - -def graphite_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_max, T): - """ - Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in - EC:DMC. - - References - ---------- - .. [1] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of - a lithium-ion battery i. determination of parameters." Journal of the - Electrochemical Society 162.9 (2015): A1836-A1848. - .. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of - a lithium-ion battery ii. model validation." Journal of The Electrochemical - Society 162.9 (2015): A1849-A1857. - .. [3] Richardson, Giles, et. al. "Generalised single particle models for - high-rate operation of graded lithium-ion electrodes: Systematic derivation - and validation." Electrochemica Acta 339 (2020): 135862 - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_s_surf : :class:`pybamm.Symbol` - Particle concentration [mol.m-3] - c_s_max : :class:`pybamm.Symbol` - Maximum particle concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - - k_ref = 1.11 * 1e-10 - - # multiply by Faraday's constant to get correct units - m_ref = constants.F * k_ref # (A/m2)(mol/m3)**1.5 - includes ref concentrations - E_r = 53400 - - arrhenius = exp(-E_r / (constants.R * T)) * exp(E_r / (constants.R * 296.15)) - - return ( - m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 - ) diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/graphite_ocp_Ecker2015.csv b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/graphite_ocp_Ecker2015.csv deleted file mode 100644 index a578a7fa09..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/graphite_ocp_Ecker2015.csv +++ /dev/null @@ -1,41 +0,0 @@ -0.0015151515151514694, 1.4325153374233128 -0.0060606060606061, 0.8619631901840491 -0.010606060606060619, 0.7914110429447854 -0.016666666666666607, 0.6595092024539877 -0.021212121212121238, 0.5797546012269938 -0.022727272727272707, 0.5245398773006136 -0.030303030303030276, 0.4754601226993864 -0.039393939393939315, 0.4141104294478526 -0.045454545454545414, 0.3680981595092023 -0.05303030303030298, 0.3312883435582821 -0.06666666666666665, 0.28220858895705514 -0.07878787878787874, 0.24846625766871155 -0.08939393939393936, 0.2239263803680982 -0.10151515151515145, 0.22085889570552153 -0.12727272727272732, 0.21165644171779152 -0.14242424242424245, 0.2024539877300613 -0.15909090909090917, 0.19938650306748462 -0.17727272727272725, 0.19325153374233128 -0.19393939393939397, 0.18404907975460127 -0.21363636363636362, 0.1809815950920246 -0.23333333333333328, 0.17177914110429437 -0.25757575757575757, 0.16564417177914104 -0.2787878787878788, 0.16257668711656437 -0.303030303030303, 0.15337423312883436 -0.32878787878787885, 0.14110429447852746 -0.35151515151515156, 0.13496932515337412 -0.3712121212121211, 0.13190184049079745 -0.39242424242424234, 0.128834355828221 -0.5681818181818183, 0.1257668711656441 -0.5878787878787879, 0.12269938650306744 -0.6060606060606062, 0.1165644171779141 -0.6272727272727272, 0.10122699386503076 -0.6545454545454545, 0.0950920245398772 -0.6742424242424243, 0.0950920245398772 -0.6939393939393939, 0.08895705521472386 -0.7181818181818183, 0.08895705521472386 -0.7393939393939393, 0.08588957055214719 -0.8909090909090911, 0.08282208588957074 -0.956060606060606, 0.08272208588957074 -0.9772727272727273, 0.07975460122699385 -1, 0.07055214723926384 diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/graphite_ocp_Ecker2015_function.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/graphite_ocp_Ecker2015_function.py deleted file mode 100644 index 8ac61354f4..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/graphite_ocp_Ecker2015_function.py +++ /dev/null @@ -1,62 +0,0 @@ -from pybamm import exp, tanh - - -def graphite_ocp_Ecker2015_function(sto): - """ - Graphite OCP as a function of stochiometry [1, 2, 3]. - - References - ---------- - .. [1] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of - a lithium-ion battery i. determination of parameters." Journal of the - Electrochemical Society 162.9 (2015): A1836-A1848. - .. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of - a lithium-ion battery ii. model validation." Journal of The Electrochemical - Society 162.9 (2015): A1849-A1857. - .. [3] Richardson, Giles, et. al. "Generalised single particle models for - high-rate operation of graded lithium-ion electrodes: Systematic derivation - and validation." Electrochemica Acta 339 (2020): 135862 - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - - Returns - ------- - :class:`pybamm.Symbol` - Open circuit potential - """ - - # Graphite negative electrode from Ecker, Kabitz, Laresgoiti et al. - # Analytical fit (WebPlotDigitizer + gnuplot) - a = 0.716502 - b = 369.028 - c = 0.12193 - d = 35.6478 - e = 0.0530947 - g = 0.0169644 - h = 27.1365 - i = 0.312832 - j = 0.0199313 - k = 28.5697 - m = 0.614221 - n = 0.931153 - o = 36.328 - p = 1.10743 - q = 0.140031 - r = 0.0189193 - s = 21.1967 - t = 0.196176 - - u_eq = ( - a * exp(-b * sto) - + c * exp(-d * (sto - e)) - - r * tanh(s * (sto - t)) - - g * tanh(h * (sto - i)) - - j * tanh(k * (sto - m)) - - n * exp(o * (sto - p)) - + q - ) - - return u_eq diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/measured_graphite_diffusivity_Ecker2015.csv b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/measured_graphite_diffusivity_Ecker2015.csv deleted file mode 100644 index 936c491f96..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/measured_graphite_diffusivity_Ecker2015.csv +++ /dev/null @@ -1,23 +0,0 @@ -0.04291659469592768,2.5318983605709854e-13 -0.08025337997334403,4.438292394020732e-14 -0.12014956931041065,3.1947426343055446e-14 -0.15796120718295306,2.6077962994674755e-14 -0.19575227382393767,2.255908580891848e-14 -0.2357650334731653,1.16865022242173e-14 -0.27144412034088194,1.2386927328130891e-14 -0.3100288936661386,2.0291954487412547e-14 -0.3484165260222996,3.2604716406478646e-15 -0.3866704453733347,7.640156635519089e-16 -0.4264157790123111,8.417747371928056e-16 -0.4641862744217376,7.717093525037831e-16 -0.5018779134435263,8.837921553351043e-16 -0.5412118224513462,3.109171322297572e-15 -0.5766749113877059,6.062184667385398e-15 -0.6148036890800979,3.595937210129949e-14 -0.6545815938357071,2.0323093806678467e-15 -0.7681399348426814,7.802664217099549e-16 -0.8089429726375879,7.728942922045022e-16 -0.8823034129113143,9.65829674321414e-16 -0.9220864604748132,9.566999594213241e-16 -0.9607500901877076,1.2545776383613633e-15 -0.9976360226401492,1.395684713792463e-14 diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/parameters.csv b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/parameters.csv deleted file mode 100644 index 77f2805374..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/parameters.csv +++ /dev/null @@ -1,30 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrode properties,,, -Negative electrode conductivity [S.m-1],14,, -Maximum concentration in negative electrode [mol.m-3],31920,, -Measured negative electrode diffusivity [m2.s-1],[data]measured_graphite_diffusivity_Ecker2015,, -Negative electrode diffusivity [m2.s-1],[function]graphite_diffusivity_Ecker2015,, -Measured negative electrode OCP [V],[data]graphite_ocp_Ecker2015,, -Negative electrode OCP [V],[function]graphite_ocp_Ecker2015_function,, -,,, -# Microstructure,,, -Negative electrode porosity,0.329,, -Negative electrode active material volume fraction, 0.372403,, -Negative particle radius [m],1.37E-05,, -Negative electrode Bruggeman coefficient (electrolyte),1.6372789338386007,Solve for permeability factor B=0.162=eps^b, -Negative electrode Bruggeman coefficient (electrode),0,No Bruggeman correction to the solid conductivity, -,,, -# Interfacial reactions,,, -Negative electrode cation signed stoichiometry,-1,, -Negative electrode electrons in reaction,1,, -Negative electrode exchange-current density [A.m-2],[function]graphite_electrolyte_exchange_current_density_Ecker2015,, -,,, -# Density,,, -Negative electrode density [kg.m-3],1555,Zhao et al. (2018), -,,, -# Thermal parameters,,, -Negative electrode specific heat capacity [J.kg-1.K-1],1437,Zhao et al. (2018), -Negative electrode thermal conductivity [W.m-1.K-1],1.58,Zhao et al. (2018), -Negative electrode OCP entropic change [V.K-1],0,, diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/README.md b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/README.md deleted file mode 100644 index ae085b41d0..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Graphite negative electrode parameters - -Parameters for a graphite negative electrode, from the paper - -> Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - -Note, only an effective cell volumetric heat capacity is provided in the paper. We therefore used the values for the density and specific heat capacity reported in the Marquis2019 parameter set in each region and multiplied each density by the ratio of the volumetric heat capacity provided in smith to the calculated value. This ensures that the values produce the same effective cell volumetric heat capacity. This works fine for thermal models that are averaged over the x-direction but not for full (PDE in x direction) thermal models. We do the same for the planar effective thermal conductivity. diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/__init__.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/graphite_diffusivity_Kim2011.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/graphite_diffusivity_Kim2011.py deleted file mode 100644 index 5c76052c25..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/graphite_diffusivity_Kim2011.py +++ /dev/null @@ -1,32 +0,0 @@ -from pybamm import exp, constants - - -def graphite_diffusivity_Kim2011(sto, T): - """ - Graphite diffusivity [1]. - - References - ---------- - .. [1] Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. - (2011). Multi-domain modeling of lithium-ion batteries encompassing - multi-physics in varied length scales. Journal of The Electrochemical - Society, 158(8), A955-A969. - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - D_ref = 9 * 10 ** (-14) - E_D_s = 4e3 - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) - - return D_ref * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/graphite_electrolyte_exchange_current_density_Kim2011.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/graphite_electrolyte_exchange_current_density_Kim2011.py deleted file mode 100644 index 380ab86f69..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/graphite_electrolyte_exchange_current_density_Kim2011.py +++ /dev/null @@ -1,53 +0,0 @@ -from pybamm import exp, constants, Parameter - - -def graphite_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max, T): - """ - Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in - EC:DMC - [1]. - - References - ---------- - .. [1] Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. - (2011). Multi-domain modeling of lithium-ion batteries encompassing - multi-physics in varied length scales. Journal of The Electrochemical - Society, 158(8), A955-A969. - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_s_surf : :class:`pybamm.Symbol` - Particle concentration [mol.m-3] - c_s_max : :class:`pybamm.Symbol` - Maximum particle concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - - i0_ref = 36 # reference exchange current density at 100% SOC - sto = 0.36 # stochiometry at 100% SOC - c_s_n_ref = sto * c_s_max # reference electrode concentration - c_e_ref = Parameter("Typical electrolyte concentration [mol.m-3]") - alpha = 0.5 # charge transfer coefficient - - m_ref = i0_ref / ( - c_e_ref**alpha * (c_s_max - c_s_n_ref) ** alpha * c_s_n_ref**alpha - ) - - E_r = 3e4 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - - return ( - m_ref - * arrhenius - * c_e**alpha - * c_s_surf**alpha - * (c_s_max - c_s_surf) ** alpha - ) diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/graphite_ocp_Kim2011.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/graphite_ocp_Kim2011.py deleted file mode 100644 index f6de52db1b..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/graphite_ocp_Kim2011.py +++ /dev/null @@ -1,29 +0,0 @@ -from pybamm import exp, tanh - - -def graphite_ocp_Kim2011(sto): - """ - Graphite Open Circuit Potential (OCP) as a function of the stochiometry [1]. - - References - ---------- - .. [1] Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. - (2011). Multi-domain modeling of lithium-ion batteries encompassing - multi-physics in varied length scales. Journal of The Electrochemical - Society, 158(8), A955-A969. - """ - - u_eq = ( - 0.124 - + 1.5 * exp(-70 * sto) - - 0.0351 * tanh((sto - 0.286) / 0.083) - - 0.0045 * tanh((sto - 0.9) / 0.119) - - 0.035 * tanh((sto - 0.99) / 0.05) - - 0.0147 * tanh((sto - 0.5) / 0.034) - - 0.102 * tanh((sto - 0.194) / 0.142) - - 0.022 * tanh((sto - 0.98) / 0.0164) - - 0.011 * tanh((sto - 0.124) / 0.0226) - + 0.0155 * tanh((sto - 0.105) / 0.029) - ) - - return u_eq diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/parameters.csv b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/parameters.csv deleted file mode 100644 index 002bfdb1ab..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/parameters.csv +++ /dev/null @@ -1,30 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrode properties,,, -Negative electrode conductivity [S.m-1],100,, -Maximum concentration in negative electrode [mol.m-3],2.87E4,, -Negative electrode diffusivity [m2.s-1],[function]graphite_diffusivity_Kim2011,, -Negative electrode OCP [V],[function]graphite_ocp_Kim2011, -,,, -# Microstructure,,, -Negative electrode porosity,0.4,, -Negative electrode active material volume fraction,0.51,, -Negative particle radius [m],5.083E-7,, -Negative electrode Bruggeman coefficient (electrolyte),2,, -Negative electrode Bruggeman coefficient (electrode),2,, -,,, -# Interfacial reactions,,, -Negative electrode cation signed stoichiometry,-1,, -Negative electrode electrons in reaction,1,, -Negative electrode charge transfer coefficient,0.5,, -Negative electrode double-layer capacity [F.m-2],0.2,Not reported in Kim2011, -Negative electrode exchange-current density [A.m-2],[function]graphite_electrolyte_exchange_current_density_Kim2011,, -,,, -# Density,,, -Negative electrode density [kg.m-3],2136.43638,1657 * 1.28934, -,,, -# Thermal parameters,,, -Negative electrode specific heat capacity [J.kg-1.K-1],700,, -Negative electrode thermal conductivity [W.m-1.K-1],1.1339,1.7 * 0.667, -Negative electrode OCP entropic change [V.K-1],0,, diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/README.md b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/README.md deleted file mode 100644 index 96ef76cc35..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# LG M50 Graphite anode parameters - -Parameters for an LG M50 graphite negative electrode, from the paper - -> Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. ["Lithium-ion battery degradation: how to model it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical Chemistry: Chemical Physics 24 (2022): 7909-7922 - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/__init__.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_LGM50_diffusivity_Chen2020.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_LGM50_diffusivity_Chen2020.py deleted file mode 100644 index 1d636463af..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_LGM50_diffusivity_Chen2020.py +++ /dev/null @@ -1,34 +0,0 @@ -from pybamm import exp, constants - - -def graphite_LGM50_diffusivity_Chen2020(sto, T): - """ - LG M50 Graphite diffusivity as a function of stochiometry, in this case the - diffusivity is taken to be a constant. The value is taken from [1]. - - References - ---------- - .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the - Electrochemical Society 167 (2020): 080534. - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - D_ref = 3.3e-14 - E_D_s = 3.03e4 - # E_D_s not given by Chen et al (2020), so taken from Ecker et al. (2015) instead - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) - - return D_ref * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_LGM50_electrolyte_exchange_current_density_Chen2020.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_LGM50_electrolyte_exchange_current_density_Chen2020.py deleted file mode 100644 index 02fbdd28a9..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_LGM50_electrolyte_exchange_current_density_Chen2020.py +++ /dev/null @@ -1,41 +0,0 @@ -from pybamm import exp, constants - - -def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( - c_e, c_s_surf, c_s_max, T -): - """ - Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in - EC:DMC. - - References - ---------- - .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the - Electrochemical Society 167 (2020): 080534. - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_s_surf : :class:`pybamm.Symbol` - Particle concentration [mol.m-3] - c_s_max : :class:`pybamm.Symbol` - Maximum particle concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - - m_ref = 6.48e-7 # (A/m2)(mol/m3)**1.5 - includes ref concentrations - E_r = 35000 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - - return ( - m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 - ) diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_LGM50_ocp_Chen2020.csv b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_LGM50_ocp_Chen2020.csv deleted file mode 100644 index 2b2aa19a03..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_LGM50_ocp_Chen2020.csv +++ /dev/null @@ -1,243 +0,0 @@ -# OCP data for LG M50 graphite anode -# sto,ocp -# extra point to avoid extrapolation -0,1.81772748379334 -# experimentally measured data -0.0312962309919435,1.08288070000000 -0.0349990174231383,0.995937940000000 -0.0387017984426739,0.900233980000000 -0.0424045760400907,0.796494310000000 -0.0461073567667969,0.733544290000000 -0.0498101472864833,0.666643140000000 -0.0535129169550513,0.641371490000000 -0.0572156800080452,0.598138690000000 -0.0609184495648372,0.567083600000000 -0.0646212178896581,0.547461810000000 -0.0683239899372943,0.530683990000000 -0.0720267516206726,0.513047340000000 -0.0757295119643203,0.493940920000000 -0.0794322723972667,0.479262740000000 -0.0831350309398288,0.460652590000000 -0.0868377862970441,0.459927260000000 -0.0905405444092937,0.438015010000000 -0.0942433124962634,0.424386650000000 -0.0979460700715639,0.411502690000000 -0.101648825029857,0.400336590000000 -0.105351579051700,0.389571340000000 -0.109054336366249,0.377565380000000 -0.112757097430127,0.362925410000000 -0.116459849153289,0.343570860000000 -0.120162608086248,0.340631400000000 -0.123865356984332,0.322994680000000 -0.127568112208028,0.313794580000000 -0.131270864460474,0.307953860000000 -0.134973620696607,0.292073190000000 -0.138676382618935,0.286976870000000 -0.142379130218803,0.274054770000000 -0.146081890204289,0.267049700000000 -0.149784649866357,0.258574930000000 -0.153487405398072,0.252657830000000 -0.157190175658005,0.248267770000000 -0.160892939040625,0.241434500000000 -0.164595700624986,0.233627780000000 -0.168298470128353,0.229562180000000 -0.172001223759462,0.223702360000000 -0.175703987585269,0.221812710000000 -0.179406738528351,0.220896510000000 -0.183109501186799,0.219426800000000 -0.186812285743759,0.218300640000000 -0.190515043988865,0.218453330000000 -0.194217798449951,0.217537150000000 -0.197920560933317,0.217193570000000 -0.201623337530448,0.216353730000000 -0.205326099907333,0.216678220000000 -0.209028863421514,0.217384440000000 -0.212731637811268,0.214693130000000 -0.216434400018689,0.215418460000000 -0.220137158758552,0.214654950000000 -0.223839932905728,0.213547900000000 -0.227542704859571,0.213929640000000 -0.231245472941435,0.210742060000000 -0.234948246608884,0.208737880000000 -0.238651007030528,0.204653190000000 -0.242353771096756,0.202057320000000 -0.246056534779736,0.197743580000000 -0.249759296042551,0.194441470000000 -0.253462075305427,0.191902850000000 -0.257164855541649,0.188505310000000 -0.260867623398810,0.185813990000000 -0.264570388343682,0.183275370000000 -0.268273141960127,0.181576590000000 -0.271975899008113,0.178140880000000 -0.275678670804876,0.175296860000000 -0.279381437563501,0.171937500000000 -0.283084208890615,0.169341610000000 -0.286786983838099,0.167566490000000 -0.290489741421874,0.166096760000000 -0.294192511321947,0.164149850000000 -0.297895287824777,0.162603780000000 -0.301598064066139,0.162241130000000 -0.305300829766264,0.160027000000000 -0.309003605818808,0.158270960000000 -0.312706366234020,0.158805400000000 -0.316409128935726,0.155522380000000 -0.320111892208735,0.155808690000000 -0.323814657710233,0.152201180000000 -0.327517439807890,0.151113200000000 -0.331220205464159,0.149872530000000 -0.334922968466154,0.148746370000000 -0.338625750725335,0.146780370000000 -0.342328527763104,0.146207760000000 -0.346031309868876,0.145558790000000 -0.349734084397854,0.143898190000000 -0.353436854897322,0.143592790000000 -0.357139627707061,0.142428460000000 -0.360842411597988,0.140386120000000 -0.364545174861915,0.138820960000000 -0.368247948241878,0.139546280000000 -0.371950714867844,0.139469920000000 -0.375653482399388,0.137809340000000 -0.379356259818551,0.139737140000000 -0.383059044551139,0.136988580000000 -0.386761819665088,0.135232540000000 -0.390464596573676,0.134411780000000 -0.394167374371778,0.135289800000000 -0.397870146744550,0.135079850000000 -0.401572911082096,0.136473210000000 -0.405275673810652,0.136015120000000 -0.408978444047454,0.134354520000000 -0.412681205117036,0.133476500000000 -0.416383982346429,0.134831700000000 -0.420086760850234,0.132751180000000 -0.423789528171715,0.132865710000000 -0.427492295549261,0.132636670000000 -0.431195060865253,0.134564470000000 -0.434897836788305,0.134717180000000 -0.438600610939060,0.133953690000000 -0.442303381655562,0.134488140000000 -0.446006148119762,0.133476500000000 -0.449708925504862,0.132980230000000 -0.453411684191202,0.132598490000000 -0.457114440916438,0.133381070000000 -0.460817193028781,0.133094760000000 -0.464519943384457,0.132751180000000 -0.468222694005807,0.134430870000000 -0.471925449273306,0.133152020000000 -0.475628214901007,0.132713000000000 -0.479330982475788,0.133018400000000 -0.483033746549207,0.132789360000000 -0.486736511451955,0.132254910000000 -0.490439263445418,0.133171110000000 -0.494142032545160,0.132636670000000 -0.497844816626510,0.131873160000000 -0.501547587896339,0.132655740000000 -0.505250356183052,0.132503050000000 -0.508953105923419,0.133247450000000 -0.512655855186197,0.132044960000000 -0.516358614974852,0.132426690000000 -0.520061385641280,0.132331270000000 -0.523764153672818,0.131987690000000 -0.527466921773724,0.132541220000000 -0.531169691411363,0.131453250000000 -0.534872451405134,0.132980230000000 -0.538575207372981,0.131682290000000 -0.542277974391093,0.131357800000000 -0.545980740352798,0.132350360000000 -0.549683501204733,0.131205110000000 -0.553386270215891,0.130899710000000 -0.557089019988434,0.131090580000000 -0.560791784265352,0.130823360000000 -0.564494537080197,0.130117130000000 -0.568197299191212,0.129869000000000 -0.571900057449854,0.129926260000000 -0.575602818473649,0.129429980000000 -0.579305581898489,0.127960260000000 -0.583008351078542,0.128628310000000 -0.586711119160506,0.126566890000000 -0.590413885866284,0.127349470000000 -0.594116641691466,0.125097160000000 -0.597819411981392,0.121107910000000 -0.601522182187787,0.118397510000000 -0.605224955391117,0.112442260000000 -0.608927723682774,0.113072140000000 -0.612630478412401,0.109216500000000 -0.616333249893282,0.106830580000000 -0.620036027033193,0.104330140000000 -0.623738797952401,0.105303590000000 -0.627441562394607,0.100569930000000 -0.631144325925059,0.0995010440000000 -0.634847114512325,0.0985466760000000 -0.638549884221743,0.0992147330000000 -0.642252650586067,0.0954163520000000 -0.645955430101924,0.0998064350000000 -0.649658231687418,0.0986611990000000 -0.653361004502960,0.0956072210000000 -0.657063774662737,0.0975541320000000 -0.660766563716793,0.0961225850000000 -0.664469339353229,0.0943092850000000 -0.668172119080598,0.0966188540000000 -0.671874891156802,0.0936603170000000 -0.675577670252883,0.0952254760000000 -0.679280441499295,0.0953590870000000 -0.682983220191922,0.0931640420000000 -0.686686001640506,0.0945001620000000 -0.690388778900278,0.0930876960000000 -0.694091555474028,0.0934312640000000 -0.697794325005044,0.0932403950000000 -0.701497093656894,0.0935076180000000 -0.705199875232905,0.0933930950000000 -0.708902639071993,0.0929159080000000 -0.712605404436496,0.0930304300000000 -0.716308184771416,0.0926295970000000 -0.720010954088915,0.0932403950000000 -0.723713711354927,0.0926105160000000 -0.727416483536807,0.0924959850000000 -0.731119252071337,0.0924005510000000 -0.734822035630127,0.0925341620000000 -0.738524799807680,0.0920951520000000 -0.742227568105003,0.0923432860000000 -0.745930339816929,0.0936603170000000 -0.749633118921535,0.0933358300000000 -0.753335891546580,0.0932213070000000 -0.757038684517004,0.0926486850000000 -0.760741459961769,0.0925341620000000 -0.764444224136151,0.0924387280000000 -0.768146984167905,0.0923051160000000 -0.771849759741077,0.0931067840000000 -0.775552533080109,0.0916561480000000 -0.779255307772044,0.0915988830000000 -0.782958072926225,0.0920760630000000 -0.786660852552783,0.0917515830000000 -0.790363639414952,0.0917706710000000 -0.794066406798143,0.0923623740000000 -0.797769180570730,0.0924196390000000 -0.801471972061922,0.0932022180000000 -0.805174740205057,0.0919997170000000 -0.808877513470830,0.0916752290000000 -0.812580278330776,0.0932213070000000 -0.816283043054478,0.0919042830000000 -0.819985807095308,0.0916752290000000 -0.823688581889439,0.0928586500000000 -0.827391362903273,0.0918088410000000 -0.831094111514778,0.0915034490000000 -0.834796875363559,0.0918661060000000 -0.838499653966946,0.0920188050000000 -0.842202418107843,0.0932022180000000 -0.845905185427703,0.0913125720000000 -0.849607966269499,0.0911789610000000 -0.853310746424072,0.0913316610000000 -0.857013527063463,0.0908926500000000 -0.860716308996327,0.0905872510000000 -0.864419073626463,0.0905109050000000 -0.868121860558204,0.0903391170000000 -0.871824644664188,0.0904154700000000 -0.875527415820355,0.0911216960000000 -0.879230192607003,0.0894611030000000 -0.882932957631799,0.0899955480000000 -0.886635727806255,0.0892129690000000 -0.890338494102966,0.0888121280000000 -0.894041256363904,0.0879722910000000 -0.897744036942199,0.0870942700000000 -0.901446800739041,0.0850328360000000 -# extra point to avoid extrapolation -1,0.0760153081792987 \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_LGM50_ocp_Chen2020.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_LGM50_ocp_Chen2020.py deleted file mode 100644 index f79cea6c0f..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_LGM50_ocp_Chen2020.py +++ /dev/null @@ -1,37 +0,0 @@ -from pybamm import exp, tanh - - -def graphite_LGM50_ocp_Chen2020(sto): - """ - LG M50 Graphite open-circuit potential as a function of stochiometry. The fit is - taken from [1] with an extra term added by Simon O'Kane to capture behaviour in - the high stoichiometry range. - - References - ---------- - .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the - Electrochemical Society 167 (2020): 080534. - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - - Returns - ------- - :class:`pybamm.Symbol` - Open circuit potential - """ - - u_eq = ( - 1.9793 * exp(-39.3631 * sto) - + 0.15561 - - 0.0909 * tanh(29.8538 * (sto - 0.1234)) - - 0.04478 * tanh(14.9159 * (sto - 0.2769)) - - 0.0205 * tanh(30.4444 * (sto - 0.6103)) - - 0.09259 * tanh(17.08 * (sto - 1)) - ) - - return u_eq diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_cracking_rate_Ai2020.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_cracking_rate_Ai2020.py deleted file mode 100644 index 7871321bdd..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_cracking_rate_Ai2020.py +++ /dev/null @@ -1,32 +0,0 @@ -from pybamm import constants, exp - - -def graphite_cracking_rate_Ai2020(T_dim): - """ - Graphite particle cracking rate as a function of temperature [1, 2]. - - References - ---------- - .. [1] Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). - Electrochemical Thermal-Mechanical Modelling of Stress Inhomogeneity in - Lithium-Ion Pouch Cells. Journal of The Electrochemical Society, 167(1), 013512 - DOI: 10.1149/2.0122001JES. - .. [2] Deshpande, R., Verbrugge, M., Cheng, Y. T., Wang, J., & Liu, P. (2012). - Battery cycle life prediction with coupled chemical degradation and fatigue - mechanics. Journal of the Electrochemical Society, 159(10), A1730. - - Parameters - ---------- - T_dim: :class:`pybamm.Symbol` - temperature, [K] - - Returns - ------- - k_cr: :class:`pybamm.Symbol` - cracking rate, [m/(Pa.m0.5)^m_cr] - where m_cr is another Paris' law constant - """ - k_cr = 3.9e-20 - Eac_cr = 0 # to be implemented - arrhenius = exp(Eac_cr / constants.R * (1 / T_dim - 1 / 298.15)) - return k_cr * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_volume_change_Ai2020.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_volume_change_Ai2020.py deleted file mode 100644 index ea6305b4f7..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/graphite_volume_change_Ai2020.py +++ /dev/null @@ -1,47 +0,0 @@ -def graphite_volume_change_Ai2020(sto, c_s_max): - """ - Graphite particle volume change as a function of stochiometry [1, 2]. - - References - ---------- - .. [1] Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). - Electrochemical Thermal-Mechanical Modelling of Stress Inhomogeneity in - Lithium-Ion Pouch Cells. Journal of The Electrochemical Society, 167(1), 013512 - DOI: 10.1149/2.0122001JES. - .. [2] Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). - A new method to model the thickness change of a commercial pouch cell - during discharge. Journal of The Electrochemical Society, 163(8), A1566-A1575. - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry, dimensionless - should be R-averaged particle concentration - Returns - ------- - t_change:class:`pybamm.Symbol` - volume change, dimensionless, normalised by particle volume - """ - p1 = 145.907 - p2 = -681.229 - p3 = 1334.442 - p4 = -1415.710 - p5 = 873.906 - p6 = -312.528 - p7 = 60.641 - p8 = -5.706 - p9 = 0.386 - p10 = -4.966e-05 - t_change = ( - p1 * sto**9 - + p2 * sto**8 - + p3 * sto**7 - + p4 * sto**6 - + p5 * sto**5 - + p6 * sto**4 - + p7 * sto**3 - + p8 * sto**2 - + p9 * sto - + p10 - ) - return t_change diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/parameters.csv b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/parameters.csv deleted file mode 100644 index 062be61eaa..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_OKane2022/parameters.csv +++ /dev/null @@ -1,51 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrode properties,,, -Negative electrode conductivity [S.m-1],215,Chen 2020,graphite -Maximum concentration in negative electrode [mol.m-3],33133,Chen 2020,tuned for 1C -Negative electrode diffusivity [m2.s-1],[function]graphite_LGM50_diffusivity_Chen2020,Chen 2020,tuned for 1C -Negative electrode OCP [V],[data]graphite_LGM50_ocp_Chen2020,Chen 2020, -,,, -# Microstructure,,, -Negative electrode porosity,0.25,Chen 2020, -Negative electrode active material volume fraction,0.75,Chen 2020, -Negative particle radius [m],5.86E-06,Chen 2020, -Negative electrode Bruggeman coefficient (electrolyte),1.5,Chen 2020,theoretical -Negative electrode Bruggeman coefficient (electrode),1.5,default, -,,, -# Interfacial reactions,,, -Negative electrode cation signed stoichiometry,-1,, -Negative electrode electrons in reaction,1,, -Negative electrode charge transfer coefficient,0.5,Chen 2020, -Negative electrode double-layer capacity [F.m-2],0.2,, -Negative electrode exchange-current density [A.m-2],[function]graphite_LGM50_electrolyte_exchange_current_density_Chen2020,, -,,, -# Density,,, -Negative electrode density [kg.m-3],1657,default, -,,, -# Thermal parameters,,, -Negative electrode specific heat capacity [J.kg-1.K-1],700,default, -Negative electrode thermal conductivity [W.m-1.K-1],1.7,default, -Negative electrode OCP entropic change [V.K-1],0,, -,,, -# Mechanical properties,,, -Negative electrode Poisson's ratio,0.3,, -Negative electrode Young's modulus [Pa],15e9,, -Negative electrode reference concentration for free of deformation [mol.m-3],0,, -Negative electrode partial molar volume [m3.mol-1],3.1e-6,, -Negative electrode volume change,[function]graphite_volume_change_Ai2020,Ai2020, -,,, -# Crack model,,, -Negative electrode initial crack length [m],20e-9,, -Negative electrode initial crack width [m],15e-9,, -Negative electrode number of cracks per unit area [m-2],3.18e15,, -Negative electrode Paris' law constant b,1.12,, -Negative electrode Paris' law constant m,2.2,, -Negative electrode cracking rate,[function]graphite_cracking_rate_Ai2020,Ai2020, -,,, -# Loss of active materials (LAM) model,,, -Negative electrode LAM constant proportional term [s-1],2.7778E-7,0.001/3600, -Negative electrode LAM constant exponential term,2,, -Negative electrode critical stress [Pa],60e6,, -,,, diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/README.md b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/README.md deleted file mode 100644 index b8bee1b33f..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# LG M50 Graphite negative electrode parameters - -Parameters for a LG M50 graphite negative electrode, from the paper - -> Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) Electrochimica Acta 425 (2022): 140700 - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/__init__.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_diffusivity_ORegan2022.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_diffusivity_ORegan2022.py deleted file mode 100644 index 693b527862..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_diffusivity_ORegan2022.py +++ /dev/null @@ -1,60 +0,0 @@ -from pybamm import exp, constants - - -def graphite_LGM50_diffusivity_ORegan2022(sto, T): - """ - LG M50 Graphite diffusivity as a function of stochiometry, in this case the - diffusivity is taken to be a constant. The value is taken from [1]. - - References - ---------- - .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma - Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion - cylindrical battery." Electrochimica Acta 425 (2022): 140700 - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - a0 = 11.17 - a1 = -1.553 - a2 = -6.136 - a3 = -9.725 - a4 = 1.85 - b1 = 0.2031 - b2 = 0.5375 - b3 = 0.9144 - b4 = 0.5953 - c0 = -15.11 - c1 = 0.0006091 - c2 = 0.06438 - c3 = 0.0578 - c4 = 0.001356 - d = 2092 - - D_ref = ( - 10 - ** ( - a0 * sto - + c0 - + a1 * exp(-((sto - b1) ** 2) / c1) - + a2 * exp(-((sto - b2) ** 2) / c2) - + a3 * exp(-((sto - b3) ** 2) / c3) - + a4 * exp(-((sto - b4) ** 2) / c4) - ) - * 3.0321 # correcting factor (see O'Regan et al 2021) - ) - - E_D_s = d * constants.R - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) - - return D_ref * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_electrolyte_exchange_current_density_ORegan2022.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_electrolyte_exchange_current_density_ORegan2022.py deleted file mode 100644 index c66639eef6..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_electrolyte_exchange_current_density_ORegan2022.py +++ /dev/null @@ -1,47 +0,0 @@ -from pybamm import exp, constants, Parameter - - -def graphite_LGM50_electrolyte_exchange_current_density_ORegan2022( - c_e, c_s_surf, c_s_max, T -): - """ - Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in - EC:DMC. - - References - ---------- - .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma - Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion - cylindrical battery." Electrochimica Acta 425 (2022): 140700 - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_s_surf : :class:`pybamm.Symbol` - Particle concentration [mol.m-3] - c_s_max : :class:`pybamm.Symbol` - Maximum particle concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - - i_ref = 2.668 # (A/m2) - alpha = 0.792 - E_r = 4e4 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - - c_e_ref = Parameter("Typical electrolyte concentration [mol.m-3]") - - return ( - i_ref - * arrhenius - * (c_e / c_e_ref) ** (1 - alpha) - * (c_s_surf / c_s_max) ** alpha - * (1 - c_s_surf / c_s_max) ** (1 - alpha) - ) diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_entropic_change_ORegan2022.csv b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_entropic_change_ORegan2022.csv deleted file mode 100644 index 299faca1d1..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_entropic_change_ORegan2022.csv +++ /dev/null @@ -1,19 +0,0 @@ -# Entropic term data for LG M50 graphite negative electrode -# sto,dUdT -# extra point to avoid extrapolation -0,0.0004 -# experimentally measured data -0.0791,0.0003797 -0.0903,0.0003625 -0.1051,0.0003431 -0.2000,0.0000229 -0.2723,0 -0.3721,-0.0000461 -0.4719,-0.0002032 -0.5717,-0.0002130 -0.6715,-0.0000417 -0.7713,-0.0000595 -0.8711,-0.0000655 -0.9709,-0.0000817 -# extra point to avoid extrapolation -1,-0.0000864 \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_entropic_change_ORegan2022.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_entropic_change_ORegan2022.py deleted file mode 100644 index de4a340052..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_entropic_change_ORegan2022.py +++ /dev/null @@ -1,43 +0,0 @@ -from pybamm import exp, tanh - - -def graphite_LGM50_entropic_change_ORegan2022(sto, c_s_max): - """ - LG M50 Graphite entropic change in open circuit potential (OCP) at a temperature of - 298.15K as a function of the stochiometry. The fit is taken from [1]. - - References - ---------- - .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma - Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion - cylindrical battery." Electrochimica Acta 425 (2022): 140700 - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - - Returns - ------- - :class:`pybamm.Symbol` - Entropic change [V.K-1] - """ - - a0 = -0.1112 - a1 = -0.09002 * 0 # fixed fit (see discussion O'Regan et al 2021) - a2 = 0.3561 - b1 = 0.4955 - b2 = 0.08309 - c0 = 0.02914 - c1 = 0.1122 - c2 = 0.004616 - d1 = 63.9 - - dUdT = ( - a0 * sto - + c0 - + a2 * exp(-((sto - b2) ** 2) / c2) - + a1 * (tanh(d1 * (sto - (b1 - c1))) - tanh(d1 * (sto - (b1 + c1)))) - ) / 1000 # fit in mV / K - - return dUdT diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_heat_capacity_ORegan2022.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_heat_capacity_ORegan2022.py deleted file mode 100644 index cde147c201..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_heat_capacity_ORegan2022.py +++ /dev/null @@ -1,43 +0,0 @@ -from pybamm import Parameter - - -def graphite_LGM50_heat_capacity_ORegan2022(T): - """ - Wet negative electrode specific heat capacity as a function of the temperature from - [1]. - - References - ---------- - .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma - Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion - cylindrical battery." Electrochimica Acta 425 (2022): 140700 - - Parameters - ---------- - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Specific heat capacity - """ - - # value for the dry porous electrode (i.e. electrode + air, and we neglect the air - # contribution to density) - cp_dry = 4.932e-4 * T**3 - 0.491 * T**2 + 169.4 * T - 1.897e4 - rho_dry = 1740 - theta_dry = rho_dry * cp_dry - - # value for the bulk electrolyte - rho_e = 1280 - cp_e = 229 - eps_e = Parameter("Negative electrode porosity") - theta_e = rho_e * cp_e - - # value for the wet separator - theta_wet = theta_dry + theta_e * eps_e - rho_wet = rho_dry + rho_e * eps_e - cp_wet = theta_wet / rho_wet - - return cp_wet diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_ocp_Chen2020.csv b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_ocp_Chen2020.csv deleted file mode 100644 index fe4dd8b61d..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_ocp_Chen2020.csv +++ /dev/null @@ -1,243 +0,0 @@ -# OCP data for LG M50 graphite negative electrode -# sto,ocp -# extra point to avoid extrapolation -0,1.81772748379334 -# experimentally measured data -0.0312962309919435,1.08288070000000 -0.0349990174231383,0.995937940000000 -0.0387017984426739,0.900233980000000 -0.0424045760400907,0.796494310000000 -0.0461073567667969,0.733544290000000 -0.0498101472864833,0.666643140000000 -0.0535129169550513,0.641371490000000 -0.0572156800080452,0.598138690000000 -0.0609184495648372,0.567083600000000 -0.0646212178896581,0.547461810000000 -0.0683239899372943,0.530683990000000 -0.0720267516206726,0.513047340000000 -0.0757295119643203,0.493940920000000 -0.0794322723972667,0.479262740000000 -0.0831350309398288,0.460652590000000 -0.0868377862970441,0.459927260000000 -0.0905405444092937,0.438015010000000 -0.0942433124962634,0.424386650000000 -0.0979460700715639,0.411502690000000 -0.101648825029857,0.400336590000000 -0.105351579051700,0.389571340000000 -0.109054336366249,0.377565380000000 -0.112757097430127,0.362925410000000 -0.116459849153289,0.343570860000000 -0.120162608086248,0.340631400000000 -0.123865356984332,0.322994680000000 -0.127568112208028,0.313794580000000 -0.131270864460474,0.307953860000000 -0.134973620696607,0.292073190000000 -0.138676382618935,0.286976870000000 -0.142379130218803,0.274054770000000 -0.146081890204289,0.267049700000000 -0.149784649866357,0.258574930000000 -0.153487405398072,0.252657830000000 -0.157190175658005,0.248267770000000 -0.160892939040625,0.241434500000000 -0.164595700624986,0.233627780000000 -0.168298470128353,0.229562180000000 -0.172001223759462,0.223702360000000 -0.175703987585269,0.221812710000000 -0.179406738528351,0.220896510000000 -0.183109501186799,0.219426800000000 -0.186812285743759,0.218300640000000 -0.190515043988865,0.218453330000000 -0.194217798449951,0.217537150000000 -0.197920560933317,0.217193570000000 -0.201623337530448,0.216353730000000 -0.205326099907333,0.216678220000000 -0.209028863421514,0.217384440000000 -0.212731637811268,0.214693130000000 -0.216434400018689,0.215418460000000 -0.220137158758552,0.214654950000000 -0.223839932905728,0.213547900000000 -0.227542704859571,0.213929640000000 -0.231245472941435,0.210742060000000 -0.234948246608884,0.208737880000000 -0.238651007030528,0.204653190000000 -0.242353771096756,0.202057320000000 -0.246056534779736,0.197743580000000 -0.249759296042551,0.194441470000000 -0.253462075305427,0.191902850000000 -0.257164855541649,0.188505310000000 -0.260867623398810,0.185813990000000 -0.264570388343682,0.183275370000000 -0.268273141960127,0.181576590000000 -0.271975899008113,0.178140880000000 -0.275678670804876,0.175296860000000 -0.279381437563501,0.171937500000000 -0.283084208890615,0.169341610000000 -0.286786983838099,0.167566490000000 -0.290489741421874,0.166096760000000 -0.294192511321947,0.164149850000000 -0.297895287824777,0.162603780000000 -0.301598064066139,0.162241130000000 -0.305300829766264,0.160027000000000 -0.309003605818808,0.158270960000000 -0.312706366234020,0.158805400000000 -0.316409128935726,0.155522380000000 -0.320111892208735,0.155808690000000 -0.323814657710233,0.152201180000000 -0.327517439807890,0.151113200000000 -0.331220205464159,0.149872530000000 -0.334922968466154,0.148746370000000 -0.338625750725335,0.146780370000000 -0.342328527763104,0.146207760000000 -0.346031309868876,0.145558790000000 -0.349734084397854,0.143898190000000 -0.353436854897322,0.143592790000000 -0.357139627707061,0.142428460000000 -0.360842411597988,0.140386120000000 -0.364545174861915,0.138820960000000 -0.368247948241878,0.139546280000000 -0.371950714867844,0.139469920000000 -0.375653482399388,0.137809340000000 -0.379356259818551,0.139737140000000 -0.383059044551139,0.136988580000000 -0.386761819665088,0.135232540000000 -0.390464596573676,0.134411780000000 -0.394167374371778,0.135289800000000 -0.397870146744550,0.135079850000000 -0.401572911082096,0.136473210000000 -0.405275673810652,0.136015120000000 -0.408978444047454,0.134354520000000 -0.412681205117036,0.133476500000000 -0.416383982346429,0.134831700000000 -0.420086760850234,0.132751180000000 -0.423789528171715,0.132865710000000 -0.427492295549261,0.132636670000000 -0.431195060865253,0.134564470000000 -0.434897836788305,0.134717180000000 -0.438600610939060,0.133953690000000 -0.442303381655562,0.134488140000000 -0.446006148119762,0.133476500000000 -0.449708925504862,0.132980230000000 -0.453411684191202,0.132598490000000 -0.457114440916438,0.133381070000000 -0.460817193028781,0.133094760000000 -0.464519943384457,0.132751180000000 -0.468222694005807,0.134430870000000 -0.471925449273306,0.133152020000000 -0.475628214901007,0.132713000000000 -0.479330982475788,0.133018400000000 -0.483033746549207,0.132789360000000 -0.486736511451955,0.132254910000000 -0.490439263445418,0.133171110000000 -0.494142032545160,0.132636670000000 -0.497844816626510,0.131873160000000 -0.501547587896339,0.132655740000000 -0.505250356183052,0.132503050000000 -0.508953105923419,0.133247450000000 -0.512655855186197,0.132044960000000 -0.516358614974852,0.132426690000000 -0.520061385641280,0.132331270000000 -0.523764153672818,0.131987690000000 -0.527466921773724,0.132541220000000 -0.531169691411363,0.131453250000000 -0.534872451405134,0.132980230000000 -0.538575207372981,0.131682290000000 -0.542277974391093,0.131357800000000 -0.545980740352798,0.132350360000000 -0.549683501204733,0.131205110000000 -0.553386270215891,0.130899710000000 -0.557089019988434,0.131090580000000 -0.560791784265352,0.130823360000000 -0.564494537080197,0.130117130000000 -0.568197299191212,0.129869000000000 -0.571900057449854,0.129926260000000 -0.575602818473649,0.129429980000000 -0.579305581898489,0.127960260000000 -0.583008351078542,0.128628310000000 -0.586711119160506,0.126566890000000 -0.590413885866284,0.127349470000000 -0.594116641691466,0.125097160000000 -0.597819411981392,0.121107910000000 -0.601522182187787,0.118397510000000 -0.605224955391117,0.112442260000000 -0.608927723682774,0.113072140000000 -0.612630478412401,0.109216500000000 -0.616333249893282,0.106830580000000 -0.620036027033193,0.104330140000000 -0.623738797952401,0.105303590000000 -0.627441562394607,0.100569930000000 -0.631144325925059,0.0995010440000000 -0.634847114512325,0.0985466760000000 -0.638549884221743,0.0992147330000000 -0.642252650586067,0.0954163520000000 -0.645955430101924,0.0998064350000000 -0.649658231687418,0.0986611990000000 -0.653361004502960,0.0956072210000000 -0.657063774662737,0.0975541320000000 -0.660766563716793,0.0961225850000000 -0.664469339353229,0.0943092850000000 -0.668172119080598,0.0966188540000000 -0.671874891156802,0.0936603170000000 -0.675577670252883,0.0952254760000000 -0.679280441499295,0.0953590870000000 -0.682983220191922,0.0931640420000000 -0.686686001640506,0.0945001620000000 -0.690388778900278,0.0930876960000000 -0.694091555474028,0.0934312640000000 -0.697794325005044,0.0932403950000000 -0.701497093656894,0.0935076180000000 -0.705199875232905,0.0933930950000000 -0.708902639071993,0.0929159080000000 -0.712605404436496,0.0930304300000000 -0.716308184771416,0.0926295970000000 -0.720010954088915,0.0932403950000000 -0.723713711354927,0.0926105160000000 -0.727416483536807,0.0924959850000000 -0.731119252071337,0.0924005510000000 -0.734822035630127,0.0925341620000000 -0.738524799807680,0.0920951520000000 -0.742227568105003,0.0923432860000000 -0.745930339816929,0.0936603170000000 -0.749633118921535,0.0933358300000000 -0.753335891546580,0.0932213070000000 -0.757038684517004,0.0926486850000000 -0.760741459961769,0.0925341620000000 -0.764444224136151,0.0924387280000000 -0.768146984167905,0.0923051160000000 -0.771849759741077,0.0931067840000000 -0.775552533080109,0.0916561480000000 -0.779255307772044,0.0915988830000000 -0.782958072926225,0.0920760630000000 -0.786660852552783,0.0917515830000000 -0.790363639414952,0.0917706710000000 -0.794066406798143,0.0923623740000000 -0.797769180570730,0.0924196390000000 -0.801471972061922,0.0932022180000000 -0.805174740205057,0.0919997170000000 -0.808877513470830,0.0916752290000000 -0.812580278330776,0.0932213070000000 -0.816283043054478,0.0919042830000000 -0.819985807095308,0.0916752290000000 -0.823688581889439,0.0928586500000000 -0.827391362903273,0.0918088410000000 -0.831094111514778,0.0915034490000000 -0.834796875363559,0.0918661060000000 -0.838499653966946,0.0920188050000000 -0.842202418107843,0.0932022180000000 -0.845905185427703,0.0913125720000000 -0.849607966269499,0.0911789610000000 -0.853310746424072,0.0913316610000000 -0.857013527063463,0.0908926500000000 -0.860716308996327,0.0905872510000000 -0.864419073626463,0.0905109050000000 -0.868121860558204,0.0903391170000000 -0.871824644664188,0.0904154700000000 -0.875527415820355,0.0911216960000000 -0.879230192607003,0.0894611030000000 -0.882932957631799,0.0899955480000000 -0.886635727806255,0.0892129690000000 -0.890338494102966,0.0888121280000000 -0.894041256363904,0.0879722910000000 -0.897744036942199,0.0870942700000000 -0.901446800739041,0.0850328360000000 -# extra point to avoid extrapolation -1,0.0760153081792987 \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_ocp_Chen2020.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_ocp_Chen2020.py deleted file mode 100644 index 4093180246..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_ocp_Chen2020.py +++ /dev/null @@ -1,35 +0,0 @@ -from pybamm import exp, tanh - - -def graphite_LGM50_ocp_Chen2020(sto): - """ - LG M50 Graphite open-circuit potential as a function of stochiometry, fit taken - from [1]. - - References - ---------- - .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the - Electrochemical Society 167 (2020): 080534. - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - - Returns - ------- - :class:`pybamm.Symbol` - Open-circuit potential - """ - - U = ( - 1.9793 * exp(-39.3631 * sto) - + 0.2482 - - 0.0909 * tanh(29.8538 * (sto - 0.1234)) - - 0.04478 * tanh(14.9159 * (sto - 0.2769)) - - 0.0205 * tanh(30.4444 * (sto - 0.6103)) - ) - - return U diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_thermal_conductivity_ORegan2022.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_thermal_conductivity_ORegan2022.py deleted file mode 100644 index 5a29e94a4c..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/graphite_LGM50_thermal_conductivity_ORegan2022.py +++ /dev/null @@ -1,25 +0,0 @@ -def graphite_LGM50_thermal_conductivity_ORegan2022(T): - """ - Wet negative electrode thermal conductivity as a function of the temperature from - [1]. - - References - ---------- - .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma - Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion - cylindrical battery." Electrochimica Acta 425 (2022): 140700 - - Parameters - ---------- - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Thermal conductivity - """ - - lambda_wet = -2.61e-4 * T**2 + 0.1726 * T - 24.49 - - return lambda_wet diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/parameters.csv b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/parameters.csv deleted file mode 100644 index b63056f0bd..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/parameters.csv +++ /dev/null @@ -1,31 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrode properties,,, -Negative electrode conductivity [S.m-1],215,Chen 2020,graphite -Maximum concentration in negative electrode [mol.m-3],29583,Chen 2020, -Negative electrode diffusivity [m2.s-1],[function]graphite_LGM50_diffusivity_ORegan2022,O'Regan 2022, -Negative electrode OCP [V],[function]graphite_LGM50_ocp_Chen2020,Chen 2020, -,,, -# Microstructure,,, -Negative electrode porosity,0.25,Chen 2020, -Negative electrode active material volume fraction,0.75,Chen 2020, -Negative particle radius [m],5.86E-6,Chen 2020, -Negative electrode Bruggeman coefficient (electrolyte),1.5,Chen 2020,theoretical -Negative electrode Bruggeman coefficient (electrode),0,conductivity already accounts for porous electrode, -,,, -# Interfacial reactions,,, -Negative electrode cation signed stoichiometry,-1,, -Negative electrode electrons in reaction,1,, -Reference OCP vs SHE in the negative electrode [V],,, -Negative electrode charge transfer coefficient,0.5,Chen 2020, -Negative electrode double-layer capacity [F.m-2],0.2,, -Negative electrode exchange-current density [A.m-2],[function]graphite_LGM50_electrolyte_exchange_current_density_ORegan2022,O'Regan 2022, -,,, -# Density,,, -Negative electrode density [kg.m-3],2060,O'Regan 2022,wet electrode -,,, -# Thermal parameters,,, -Negative electrode specific heat capacity [J.kg-1.K-1],[function]graphite_LGM50_heat_capacity_ORegan2022,O'Regan 2022,wet electrode -Negative electrode thermal conductivity [W.m-1.K-1],[function]graphite_LGM50_thermal_conductivity_ORegan2022,O'Regan 2022,wet electrode -Negative electrode OCP entropic change [V.K-1],[function]graphite_LGM50_entropic_change_ORegan2022,, \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/README.md b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/README.md deleted file mode 100644 index 5d735bec6a..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Graphite negative electrode parameters - -Parameters for a graphite negative electrode, from the paper - -> Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), A3693-A3706. -> P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. Popov.["Development of First Principles Capacity Fade Model for Li-Ion Cells."](https://scholarcommons.sc.edu/cgi/viewcontent.cgi?article=1161&context=eche_facpub) (2004) - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/__init__.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/graphite_electrolyte_exchange_current_density_Ramadass2004.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/graphite_electrolyte_exchange_current_density_Ramadass2004.py deleted file mode 100644 index e42c9675a1..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/graphite_electrolyte_exchange_current_density_Ramadass2004.py +++ /dev/null @@ -1,39 +0,0 @@ -from pybamm import exp, constants - - -def graphite_electrolyte_exchange_current_density_Ramadass2004( - c_e, c_s_surf, c_s_max, T -): - """ - Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in - EC:DMC. - - References - ---------- - .. [1] P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko - N. Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." - (2004) - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_s_surf : :class:`pybamm.Symbol` - Particle concentration [mol.m-3] - c_s_max : :class:`pybamm.Symbol` - Maximum particle concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - m_ref = 4.854 * 10 ** (-6) # (A/m2)(mol/m3)**1.5 - E_r = 37480 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - - return ( - m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 - ) diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/graphite_entropic_change_Moura2016.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/graphite_entropic_change_Moura2016.py deleted file mode 100644 index 7547bcf332..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/graphite_entropic_change_Moura2016.py +++ /dev/null @@ -1,32 +0,0 @@ -from pybamm import exp, cosh - - -def graphite_entropic_change_Moura2016(sto, c_s_max): - """ - Graphite entropic change in open circuit potential (OCP) at a temperature of - 298.15K as a function of the stochiometry taken from Scott Moura's FastDFN code - [1]. - - References - ---------- - .. [1] https://github.com/scott-moura/fastDFN - - Parameters - ---------- - sto : :class:`pybamm.Symbol` - Stochiometry of material (li-fraction) - - """ - du_dT = ( - -1.5 * (120.0 / c_s_max) * exp(-120 * sto) - + (0.0351 / (0.083 * c_s_max)) * ((cosh((sto - 0.286) / 0.083)) ** (-2)) - - (0.0045 / (0.119 * c_s_max)) * ((cosh((sto - 0.849) / 0.119)) ** (-2)) - - (0.035 / (0.05 * c_s_max)) * ((cosh((sto - 0.9233) / 0.05)) ** (-2)) - - (0.0147 / (0.034 * c_s_max)) * ((cosh((sto - 0.5) / 0.034)) ** (-2)) - - (0.102 / (0.142 * c_s_max)) * ((cosh((sto - 0.194) / 0.142)) ** (-2)) - - (0.022 / (0.0164 * c_s_max)) * ((cosh((sto - 0.9) / 0.0164)) ** (-2)) - - (0.011 / (0.0226 * c_s_max)) * ((cosh((sto - 0.124) / 0.0226)) ** (-2)) - + (0.0155 / (0.029 * c_s_max)) * ((cosh((sto - 0.105) / 0.029)) ** (-2)) - ) - - return du_dT diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/graphite_mcmb2528_diffusivity_Dualfoil1998.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/graphite_mcmb2528_diffusivity_Dualfoil1998.py deleted file mode 100644 index 5a9a868386..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/graphite_mcmb2528_diffusivity_Dualfoil1998.py +++ /dev/null @@ -1,30 +0,0 @@ -from pybamm import exp, constants - - -def graphite_mcmb2528_diffusivity_Dualfoil1998(sto, T): - """ - Graphite MCMB 2528 diffusivity as a function of stochiometry, in this case the - diffusivity is taken to be a constant. The value is taken from Dualfoil [1]. - - References - ---------- - .. [1] http://www.cchem.berkeley.edu/jsngrp/fortran.html - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - D_ref = 3.9 * 10 ** (-14) - E_D_s = 42770 - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) - - return D_ref * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/graphite_ocp_Ramadass2004.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/graphite_ocp_Ramadass2004.py deleted file mode 100644 index 6ea5876d05..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/graphite_ocp_Ramadass2004.py +++ /dev/null @@ -1,26 +0,0 @@ -from pybamm import exp - - -def graphite_ocp_Ramadass2004(sto): - """ - Graphite Open Circuit Potential (OCP) as a function of the - stochiometry (theta?). The fit is taken from Ramadass 2004. - - References - ---------- - .. [1] P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko - N. Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." - (2004) - """ - - u_eq = ( - 0.7222 - + 0.1387 * sto - + 0.029 * (sto**0.5) - - 0.0172 / sto - + 0.0019 / (sto**1.5) - + 0.2808 * exp(0.9 - 15 * sto) - - 0.7984 * exp(0.4465 * sto - 0.4108) - ) - - return u_eq diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/parameters.csv b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/parameters.csv deleted file mode 100644 index e601be67f8..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ramadass2004/parameters.csv +++ /dev/null @@ -1,30 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrode properties,,, -Negative electrode conductivity [S.m-1],100,Ramadass,graphite -Maximum concentration in negative electrode [mol.m-3],30555,Ramadass, -Negative electrode diffusivity [m2.s-1],[function]graphite_mcmb2528_diffusivity_Dualfoil1998,Also valid for Ramadass, -Negative electrode OCP [V],[function]graphite_ocp_Ramadass2004, -,,, -# Microstructure,,, -Negative electrode porosity,0.485,Ramadass,electrolyte volume fraction -Negative electrode active material volume fraction,0.49,Ramadass, -Negative particle radius [m],2e-06,Ramadass, -Negative electrode Bruggeman coefficient (electrolyte),4,Guess, -Negative electrode Bruggeman coefficient (electrode),4,Ramadass, -,,, -# Interfacial reactions,,, -Negative electrode cation signed stoichiometry,-1,, -Negative electrode electrons in reaction,1,, -Negative electrode charge transfer coefficient,0.5,Ramadass, -Negative electrode double-layer capacity [F.m-2],0.2,, -Negative electrode exchange-current density [A.m-2],[function]graphite_electrolyte_exchange_current_density_Ramadass2004,, -,,, -# Density,,, -Negative electrode density [kg.m-3],1657,, -,,, -# Thermal parameters,,, -Negative electrode specific heat capacity [J.kg-1.K-1],700,, -Negative electrode thermal conductivity [W.m-1.K-1],1.7,, -Negative electrode OCP entropic change [V.K-1],[function]graphite_entropic_change_Moura2016,, diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/__init__.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/graphite_diffusivity_PeymanMPM.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/graphite_diffusivity_PeymanMPM.py deleted file mode 100644 index 16880068e8..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/graphite_diffusivity_PeymanMPM.py +++ /dev/null @@ -1,30 +0,0 @@ -from pybamm import exp, constants - - -def graphite_diffusivity_PeymanMPM(sto, T): - """ - Graphite diffusivity as a function of stochiometry, in this case the - diffusivity is taken to be a constant. The value is taken from Peyman MPM. - - References - ---------- - .. [1] http://www.cchem.berkeley.edu/jsngrp/fortran.html - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - D_ref = 5.0 * 10 ** (-15) - E_D_s = 42770 - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) - - return D_ref * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/graphite_electrolyte_exchange_current_density_PeymanMPM.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/graphite_electrolyte_exchange_current_density_PeymanMPM.py deleted file mode 100644 index a2b559ef30..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/graphite_electrolyte_exchange_current_density_PeymanMPM.py +++ /dev/null @@ -1,37 +0,0 @@ -from pybamm import exp, constants - - -def graphite_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_max, T): - """ - Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in - EC:DMC. - Check the unit of Reaction rate constant k0 is from Peyman MPM. - - References - ---------- - .. [2] http://www.cchem.berkeley.edu/jsngrp/fortran.html - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_s_surf : :class:`pybamm.Symbol` - Particle concentration [mol.m-3] - c_s_max : :class:`pybamm.Symbol` - Maximum particle concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - m_ref = 1.061 * 10 ** (-6) # unit has been converted - # units are (A/m2)(mol/m3)**1.5 - includes ref concentrations - E_r = 37480 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - - return ( - m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 - ) diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/graphite_entropic_change_PeymanMPM.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/graphite_entropic_change_PeymanMPM.py deleted file mode 100644 index f857100eee..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/graphite_entropic_change_PeymanMPM.py +++ /dev/null @@ -1,28 +0,0 @@ -def graphite_entropic_change_PeymanMPM(sto, c_s_max): - """ - Graphite entropic change in open circuit potential (OCP) at a temperature of - 298.15K as a function of the stochiometry taken from [1] - - References - ---------- - .. [1] K.E. Thomas, J. Newman, "Heats of mixing and entropy in porous insertion - electrode", J. of Power Sources 119 (2003) 844-849 - - Parameters - ---------- - sto : :class:`pybamm.Symbol` - Stochiometry of material (li-fraction) - - """ - - du_dT = 10 ** (-3) * ( - 0.28 - - 1.56 * sto - - 8.92 * sto ** (2) - + 57.21 * sto ** (3) - - 110.7 * sto ** (4) - + 90.71 * sto ** (5) - - 27.14 * sto ** (6) - ) - - return du_dT diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/graphite_ocp_PeymanMPM.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/graphite_ocp_PeymanMPM.py deleted file mode 100644 index d63fffe337..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/graphite_ocp_PeymanMPM.py +++ /dev/null @@ -1,31 +0,0 @@ -import pybamm - - -def graphite_ocp_PeymanMPM(sto): - """ - Graphite Open Circuit Potential (OCP) as a function of the - stochiometry. The fit is taken from Peyman MPM [1]. - - References - ---------- - .. [1] Peyman Mohtat et al, MPM (to be submitted) - """ - - u_eq = ( - 0.063 - + 0.8 * pybamm.exp(-75 * (sto + 0.001)) - - 0.0120 * pybamm.tanh((sto - 0.127) / 0.016) - - 0.0118 * pybamm.tanh((sto - 0.155) / 0.016) - - 0.0035 * pybamm.tanh((sto - 0.220) / 0.020) - - 0.0095 * pybamm.tanh((sto - 0.190) / 0.013) - - 0.0145 * pybamm.tanh((sto - 0.490) / 0.020) - - 0.0800 * pybamm.tanh((sto - 1.030) / 0.055) - ) - - return u_eq - - -# if __name__ == "__main__": # pragma: no cover -# x = pybamm.linspace(1e-10, 1 - 1e-10, 1000) -# # pybamm.plot(x, graphite_ocp_PeymanMPM(x)) -# pybamm.plot(x, -1e-8 * pybamm.log(x / (1 - x))) diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/parameters.csv b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/parameters.csv deleted file mode 100644 index d6563ccbad..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_UMBL_Mohtat2020/parameters.csv +++ /dev/null @@ -1,33 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrode properties,,, -Negative electrode conductivity [S.m-1],100,Scott Moura FastDFN,no info from Peyman MPM -Maximum concentration in negative electrode [mol.m-3],28746,Peyman MPM, -Negative electrode diffusion coefficient [m2.s-1],5.0E-15,Peyman MPM, -Negative electrode diffusivity [m2.s-1],[function]graphite_diffusivity_PeymanMPM,, -Negative electrode OCP [V],[function]graphite_ocp_PeymanMPM,Peyman MPM, -,,, -# Microstructure,,, -Negative electrode porosity,0.3,Peyman MPM, -Negative electrode active material volume fraction,0.61,Peyman MPM,rest is binder -Negative particle radius [m],2.5E-06,Peyman MPM, -Negative electrode Bruggeman coefficient (electrode),1.5,Peyman MPM, -Negative electrode Bruggeman coefficient (electrolyte),1.5,Peyman MPM, -Negative electrode transport efficiency, 0.16, -,,, -# Interfacial reactions,,, -Negative electrode cation signed stoichiometry,-1,,no info from Peyman MPM -Negative electrode electrons in reaction,1,,no info from Peyman MPM -Negative electrode reference exchange-current density [A.m-2(m3.mol)1.5],1.061E-6,Peyman MPM,convert unit -Negative electrode charge transfer coefficient,0.5,Peyman MPM, -Negative electrode double-layer capacity [F.m-2],0.2,,no info from Peyman MPM -Negative electrode exchange-current density [A.m-2],[function]graphite_electrolyte_exchange_current_density_PeymanMPM,, -,,, -# Density,,, -Negative electrode density [kg.m-3],3100,Peyman MPM, cell lumped value -,,, -# Thermal parameters,,, -Negative electrode specific heat capacity [J.kg-1.K-1],1100,Peyman MPM,cell lumped value -Negative electrode thermal conductivity [W.m-1.K-1],1.7,,no info from Peyman MPM -Negative electrode OCP entropic change [V.K-1],[function]graphite_entropic_change_PeymanMPM,, diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/README.md b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/README.md deleted file mode 100644 index 0c54f4a684..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Graphite MCMB 2528 negative electrode parameters - -Parameters for a graphite MCMB 2528 negative electrode, from the paper - -> Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), A3693-A3706. - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/__init__.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/graphite_electrolyte_exchange_current_density_Dualfoil1998.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/graphite_electrolyte_exchange_current_density_Dualfoil1998.py deleted file mode 100644 index 9ddd432223..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/graphite_electrolyte_exchange_current_density_Dualfoil1998.py +++ /dev/null @@ -1,37 +0,0 @@ -from pybamm import exp, constants - - -def graphite_electrolyte_exchange_current_density_Dualfoil1998( - c_e, c_s_surf, c_s_max, T -): - """ - Exchange-current density for Butler-Volmer reactions between graphite and LiPF6 in - EC:DMC. - - References - ---------- - .. [2] http://www.cchem.berkeley.edu/jsngrp/fortran.html - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_s_surf : :class:`pybamm.Symbol` - Particle concentration [mol.m-3] - c_s_max : :class:`pybamm.Symbol` - Maximum particle concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - m_ref = 2 * 10 ** (-5) # (A/m2)(mol/m3)**1.5 - includes ref concentrations - E_r = 37480 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - - return ( - m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 - ) diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/graphite_entropic_change_Moura2016.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/graphite_entropic_change_Moura2016.py deleted file mode 100644 index 7547bcf332..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/graphite_entropic_change_Moura2016.py +++ /dev/null @@ -1,32 +0,0 @@ -from pybamm import exp, cosh - - -def graphite_entropic_change_Moura2016(sto, c_s_max): - """ - Graphite entropic change in open circuit potential (OCP) at a temperature of - 298.15K as a function of the stochiometry taken from Scott Moura's FastDFN code - [1]. - - References - ---------- - .. [1] https://github.com/scott-moura/fastDFN - - Parameters - ---------- - sto : :class:`pybamm.Symbol` - Stochiometry of material (li-fraction) - - """ - du_dT = ( - -1.5 * (120.0 / c_s_max) * exp(-120 * sto) - + (0.0351 / (0.083 * c_s_max)) * ((cosh((sto - 0.286) / 0.083)) ** (-2)) - - (0.0045 / (0.119 * c_s_max)) * ((cosh((sto - 0.849) / 0.119)) ** (-2)) - - (0.035 / (0.05 * c_s_max)) * ((cosh((sto - 0.9233) / 0.05)) ** (-2)) - - (0.0147 / (0.034 * c_s_max)) * ((cosh((sto - 0.5) / 0.034)) ** (-2)) - - (0.102 / (0.142 * c_s_max)) * ((cosh((sto - 0.194) / 0.142)) ** (-2)) - - (0.022 / (0.0164 * c_s_max)) * ((cosh((sto - 0.9) / 0.0164)) ** (-2)) - - (0.011 / (0.0226 * c_s_max)) * ((cosh((sto - 0.124) / 0.0226)) ** (-2)) - + (0.0155 / (0.029 * c_s_max)) * ((cosh((sto - 0.105) / 0.029)) ** (-2)) - ) - - return du_dT diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/graphite_mcmb2528_diffusivity_Dualfoil1998.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/graphite_mcmb2528_diffusivity_Dualfoil1998.py deleted file mode 100644 index 5a9a868386..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/graphite_mcmb2528_diffusivity_Dualfoil1998.py +++ /dev/null @@ -1,30 +0,0 @@ -from pybamm import exp, constants - - -def graphite_mcmb2528_diffusivity_Dualfoil1998(sto, T): - """ - Graphite MCMB 2528 diffusivity as a function of stochiometry, in this case the - diffusivity is taken to be a constant. The value is taken from Dualfoil [1]. - - References - ---------- - .. [1] http://www.cchem.berkeley.edu/jsngrp/fortran.html - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - D_ref = 3.9 * 10 ** (-14) - E_D_s = 42770 - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) - - return D_ref * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/graphite_mcmb2528_ocp_Dualfoil1998.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/graphite_mcmb2528_ocp_Dualfoil1998.py deleted file mode 100644 index 5ed6f91755..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/graphite_mcmb2528_ocp_Dualfoil1998.py +++ /dev/null @@ -1,29 +0,0 @@ -from pybamm import exp, tanh - - -def graphite_mcmb2528_ocp_Dualfoil1998(sto): - """ - Graphite MCMB 2528 Open Circuit Potential (OCP) as a function of the - stochiometry. The fit is taken from Dualfoil [1]. Dualfoil states that the data - was measured by Chris Bogatu at Telcordia and PolyStor materials, 2000. However, - we could not find any other records of this measurment. - - References - ---------- - .. [1] http://www.cchem.berkeley.edu/jsngrp/fortran.html - """ - - u_eq = ( - 0.194 - + 1.5 * exp(-120.0 * sto) - + 0.0351 * tanh((sto - 0.286) / 0.083) - - 0.0045 * tanh((sto - 0.849) / 0.119) - - 0.035 * tanh((sto - 0.9233) / 0.05) - - 0.0147 * tanh((sto - 0.5) / 0.034) - - 0.102 * tanh((sto - 0.194) / 0.142) - - 0.022 * tanh((sto - 0.9) / 0.0164) - - 0.011 * tanh((sto - 0.124) / 0.0226) - + 0.0155 * tanh((sto - 0.105) / 0.029) - ) - - return u_eq diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/parameters.csv b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/parameters.csv deleted file mode 100644 index 39ec8877aa..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_mcmb2528_Marquis2019/parameters.csv +++ /dev/null @@ -1,30 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, - -# Electrode properties,,, -Negative electrode conductivity [S.m-1],100,Scott Moura FastDFN,graphite -Maximum concentration in negative electrode [mol.m-3],24983.2619938437,Scott Moura FastDFN, -Negative electrode diffusivity [m2.s-1],[function]graphite_mcmb2528_diffusivity_Dualfoil1998,, -Negative electrode OCP [V],[function]graphite_mcmb2528_ocp_Dualfoil1998, -,,, -# Microstructure,,, -Negative electrode porosity,0.3,Scott Moura FastDFN,electrolyte volume fraction -Negative electrode active material volume fraction,0.6,, -Negative particle radius [m],1E-05,Scott Moura FastDFN, -Negative electrode Bruggeman coefficient (electrolyte),1.5,Scott Moura FastDFN, -Negative electrode Bruggeman coefficient (electrode),1.5,Scott Moura FastDFN, -,,, -# Interfacial reactions,,, -Negative electrode cation signed stoichiometry,-1,, -Negative electrode electrons in reaction,1,, -Negative electrode charge transfer coefficient,0.5,Scott Moura FastDFN, -Negative electrode double-layer capacity [F.m-2],0.2,, -Negative electrode exchange-current density [A.m-2],[function]graphite_electrolyte_exchange_current_density_Dualfoil1998,, -,,, -# Density,,, -Negative electrode density [kg.m-3],1657,, -,,, -# Thermal parameters,,, -Negative electrode specific heat capacity [J.kg-1.K-1],700,, -Negative electrode thermal conductivity [W.m-1.K-1],1.7,, -Negative electrode OCP entropic change [V.K-1],[function]graphite_entropic_change_Moura2016,, diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/li_metal_Xu2019/README.md b/pybamm/input/parameters/lithium_ion/negative_electrodes/li_metal_Xu2019/README.md deleted file mode 100644 index 05881d88e1..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/li_metal_Xu2019/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Graphite MCMB 2528 anode parameters - -Parameters for a graphite MCMB 2528 anode, from the paper - -> Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: Experimentally Validated Model of the Apparent Capacity Loss." Journal of The Electrochemical Society 166.14 (2019): A3456-A3463. - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/li_metal_Xu2019/__init__.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/li_metal_Xu2019/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/li_metal_Xu2019/li_metal_electrolyte_exchange_current_density_Xu2019.py b/pybamm/input/parameters/lithium_ion/negative_electrodes/li_metal_Xu2019/li_metal_electrolyte_exchange_current_density_Xu2019.py deleted file mode 100644 index 77c0d53be5..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/li_metal_Xu2019/li_metal_electrolyte_exchange_current_density_Xu2019.py +++ /dev/null @@ -1,32 +0,0 @@ -from pybamm import constants - - -def li_metal_electrolyte_exchange_current_density_Xu2019(c_e, c_Li, T): - """ - Exchange-current density for Butler-Volmer reactions between li metal and LiPF6 in - EC:DMC. - - References - ---------- - .. [1] Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and - Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_Li : :class:`pybamm.Symbol` - Pure metal lithium concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - m_ref = 3.5e-8 * constants.F # (A/m2)(mol/m3) - includes ref concentrations - - return m_ref * c_Li**0.7 * c_e**0.3 diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/li_metal_Xu2019/parameters.csv b/pybamm/input/parameters/lithium_ion/negative_electrodes/li_metal_Xu2019/parameters.csv deleted file mode 100644 index dd0d85d886..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/li_metal_Xu2019/parameters.csv +++ /dev/null @@ -1,17 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrode properties,,, -Negative electrode OCP [V],0,lithium metal, -Negative electrode conductivity [S.m-1],1.0776e7,li metal conductivity not provided by Xu2019 -,,, -# Thermal parameters,,, -Negative electrode OCP entropic change [V.K-1],0,, -,,, -# Interfacial reactions,,, -Negative electrode cation signed stoichiometry,-1,, -Negative electrode electrons in reaction,1,, -Typical plated lithium concentration [mol.m-3],76900,, -Exchange-current density for plating [A.m-2],[function]li_metal_electrolyte_exchange_current_density_Xu2019,, -Negative electrode charge transfer coefficient,0.5,, -Negative electrode double-layer capacity [F.m-2],0.2,, diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/LFP_Prada2013/LFP_electrolyte_exchange_current_density_kashkooli2017.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/LFP_Prada2013/LFP_electrolyte_exchange_current_density_kashkooli2017.py deleted file mode 100644 index 1a096b392e..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/LFP_Prada2013/LFP_electrolyte_exchange_current_density_kashkooli2017.py +++ /dev/null @@ -1,38 +0,0 @@ -from pybamm import exp, constants - - -def LFP_electrolyte_exchange_current_density_kashkooli2017(c_e, c_s_surf, c_s_max, T): - """ - Exchange-current density for Butler-Volmer reactions between LFP and electrolyte - - References - ---------- - .. [1] Kashkooli, A. G., Amirfazli, A., Farhad, S., Lee, D. U., Felicelli, S., Park, - H. W., ... & Chen, Z. (2017). Representative volume element model of lithium-ion - battery electrodes based on X-ray nano-tomography. Journal of Applied - Electrochemistry, 47(3), 281-293. - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_s_surf : :class:`pybamm.Symbol` - Particle concentration [mol.m-3] - c_s_max : :class:`pybamm.Symbol` - Maximum particle concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - - m_ref = 6 * 10 ** (-7) # (A/m2)(mol/m3)**1.5 - includes ref concentrations - E_r = 39570 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - - return ( - m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 - ) diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/LFP_Prada2013/LFP_ocp_ashfar2017.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/LFP_Prada2013/LFP_ocp_ashfar2017.py deleted file mode 100644 index 9695acfe4b..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/LFP_Prada2013/LFP_ocp_ashfar2017.py +++ /dev/null @@ -1,24 +0,0 @@ -from pybamm import exp - - -def LFP_ocp_ashfar2017(sto): - """ - Open-circuit potential for LFP - - References - ---------- - .. [1] Afshar, S., Morris, K., & Khajepour, A. (2017). Efficient electrochemical - model for lithium-ion cells. arXiv preprint arXiv:1709.03970. - - Parameters - ---------- - sto : :class:`pybamm.Symbol` - Stochiometry of material (li-fraction) - - """ - - c1 = -150 * sto - c2 = -30 * (1 - sto) - k = 3.4077 - 0.020269 * sto + 0.5 * exp(c1) - 0.9 * exp(c2) - - return k diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/LFP_Prada2013/README.md b/pybamm/input/parameters/lithium_ion/positive_electrodes/LFP_Prada2013/README.md deleted file mode 100644 index 8c3a5a8f97..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/LFP_Prada2013/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Lithium Iron Phosphate positive electrode parameters - -Parameters for an LFP positive electrode, from the paper - -> Prada, E., Di Domenico, D., Creff, Y., Bernard, J., Sauvant-Moynot, V., & Huet, F. (2013). A simplified electrochemical and thermal aging model of LiFePO4-graphite Li-ion batteries: power and capacity fade simulations. [Journal of The Electrochemical Society](https://doi.org/10.1149/2.053304jes), 160(4), A616. - -and references therein. The functions used for OCP and exchange-current density are from separate references (documented within the functions), to provide better fit to data diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/LFP_Prada2013/__init__.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/LFP_Prada2013/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/LFP_Prada2013/parameters.csv b/pybamm/input/parameters/lithium_ion/positive_electrodes/LFP_Prada2013/parameters.csv deleted file mode 100644 index 39cc7b63ba..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/LFP_Prada2013/parameters.csv +++ /dev/null @@ -1,33 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with # will be ignored,,, -,,, -# Electrode properties,,, -Positive electrode conductivity [S.m-1],0.33795074,"Calculation, consistant with Hosseinzadeh 2018", -Maximum concentration in positive electrode [mol.m-3],22806,Prada Thermal Aging, -Positive electrode diffusivity [m2.s-1],5.90E-18,Prada Fast Charging, -Positive electrode OCP [V],[function]LFP_ocp_ashfar2017,, -,,, -# Microstructure,,, -Positive electrode porosity,0.12728395,Calculation minimized to Severson, -Positive electrode active material volume fraction,0.28485556,Calculation minimized to Severson, -Positive particle radius [m],1.00E-08,Calculation minimized to Severson, -Positive electrode Bruggeman coefficient (electrode),1.5,, -Positive electrode Bruggeman coefficient (electrolyte),1.5,, -,,, -# Interfacial reactions,,, -Positive electrode cation signed stoichiometry,-1,, -Positive electrode electrons in reaction,1,, -Positive electrode charge transfer coefficient,0.5,adjust, -Positive electrode double-layer capacity [F.m-2],0.2,adjust, -,,, -# Density,,, -Positive electrode density [kg.m-3],2341.17,default, -,,, -,,, -# Thermal parameters,,, -Positive electrode specific heat capacity [J.kg-1.K-1],1100,, -Positive electrode thermal conductivity [W.m-1.K-1],2.1,, -Positive electrode OCP entropic change [V.K-1],0,, -,,, -# exchange-current density,,, -Positive electrode exchange-current density [A.m-2],[function]LFP_electrolyte_exchange_current_density_kashkooli2017,, diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/README.md b/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/README.md deleted file mode 100644 index 3920ccc286..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Lithium Nickel Cobalt Oxide positive electrode parameters - -Parameters for a Lithium Nickel Cobalt Oxide positive electrode, from the papers - -> Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a lithium-ion battery i. determination of parameters." Journal of the Electrochemical Society 162.9 (2015): A1836-A1848. - -> Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a lithium-ion battery II. Model validation." Journal of The Electrochemical Society 162.9 (2015): A1849-A1857. - -The fits to data for the electrode and electrolyte properties are those provided -by Dr. Simon O’Kane in the paper: - -> Richardson, Giles, et. al. "Generalised single particle models for high-rate operation of graded lithium-ion electrodes: Systematic derivation and validation." Electrochemica Acta 339 (2020): 135862 - -The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data are extracted from - -> Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and surface cooling on lithium ion cell performance."" Journal of The Electrochemical Society, 165.13 (2018): A3169-A3178. diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/__init__.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/measured_nco_diffusivity_Ecker2015.csv b/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/measured_nco_diffusivity_Ecker2015.csv deleted file mode 100644 index 72c9f0796c..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/measured_nco_diffusivity_Ecker2015.csv +++ /dev/null @@ -1,15 +0,0 @@ -0.13943217665615135,1.8256540288152508e-13 -0.2,3.329858559514642e-13 -0.2618296529968453,3.0801228532525374e-13 -0.32239747634069404,2.6333920293821577e-13 -0.38675078864353307,1.9811969945521707e-13 -0.4460567823343848,1.418878868334243e-13 -0.5078864353312302,7.201182417750914e-14 -0.5684542586750789,2.857708698828691e-14 -0.6315457413249213,4.541608403537004e-15 -0.6933753943217664,5.479444754774098e-14 -0.7526813880126184,2.0296886656972416e-13 -0.8157728706624605,1.5882865084008814e-13 -0.8750788643533123,1.3446092039291705e-13 -0.9406940063091483,2.0545053272039484e-14 -1.0,5.4462929807295865e-15 diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/nco_diffusivity_Ecker2015.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/nco_diffusivity_Ecker2015.py deleted file mode 100644 index b30be3138f..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/nco_diffusivity_Ecker2015.py +++ /dev/null @@ -1,37 +0,0 @@ -from pybamm import exp, constants - - -def nco_diffusivity_Ecker2015(sto, T): - """ - NCO diffusivity as a function of stochiometry [1, 2, 3]. - - References - ---------- - .. [1] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of - a lithium-ion battery i. determination of parameters." Journal of the - Electrochemical Society 162.9 (2015): A1836-A1848. - .. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of - a lithium-ion battery ii. model validation." Journal of The Electrochemical - Society 162.9 (2015): A1849-A1857. - .. [3] Richardson, Giles, et. al. "Generalised single particle models for - high-rate operation of graded lithium-ion electrodes: Systematic derivation - and validation." Electrochemica Acta 339 (2020): 135862 - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - D_ref = 3.7e-13 - 3.4e-13 * exp(-12 * (sto - 0.62) * (sto - 0.62)) - E_D_s = 8.06e4 - arrhenius = exp(-E_D_s / (constants.R * T)) * exp(E_D_s / (constants.R * 296.15)) - - return D_ref * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/nco_electrolyte_exchange_current_density_Ecker2015.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/nco_electrolyte_exchange_current_density_Ecker2015.py deleted file mode 100644 index 08fff34a99..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/nco_electrolyte_exchange_current_density_Ecker2015.py +++ /dev/null @@ -1,48 +0,0 @@ -from pybamm import exp, constants - - -def nco_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_max, T): - """ - Exchange-current density for Butler-Volmer reactions between NCO and LiPF6 in - EC:DMC [1, 2, 3]. - - References - ---------- - .. [1] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of - a lithium-ion battery i. determination of parameters." Journal of the - Electrochemical Society 162.9 (2015): A1836-A1848. - .. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of - a lithium-ion battery ii. model validation." Journal of The Electrochemical - Society 162.9 (2015): A1849-A1857. - .. [3] Richardson, Giles, et. al. "Generalised single particle models for - high-rate operation of graded lithium-ion electrodes: Systematic derivation - and validation." Electrochemica Acta 339 (2020): 135862 - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_s_surf : :class:`pybamm.Symbol` - Particle concentration [mol.m-3] - c_s_max : :class:`pybamm.Symbol` - Maximum particle concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - - k_ref = 3.01e-11 - - # multiply by Faraday's constant to get correct units - m_ref = constants.F * k_ref # (A/m2)(mol/m3)**1.5 - includes ref concentrations - - E_r = 4.36e4 - arrhenius = exp(-E_r / (constants.R * T)) * exp(E_r / (constants.R * 296.15)) - - return ( - m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 - ) diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/nco_ocp_Ecker2015.csv b/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/nco_ocp_Ecker2015.csv deleted file mode 100644 index eb8776016f..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/nco_ocp_Ecker2015.csv +++ /dev/null @@ -1,43 +0,0 @@ -0.001066078485433497, 4.584263211444843 -0.041273779983457604, 4.542437342855614 -0.065398400882272, 4.52965007211667 -0.08722543883834222, 4.523324753404195 -0.11154152498238534, 4.4989323580008005 -0.13547468063597112, 4.46985870879382 -0.15940783628955701, 4.429538485743097 -0.18174544823290373, 4.389207099839924 -0.2056786038864893, 4.3421389324829525 -0.228016215829836, 4.29955823181103 -0.25115159962830247, 4.2547337977965825 -0.275084755281888, 4.216662889514609 -0.2982201390803543, 4.178586399806408 -0.3221532947339403, 4.147263435830681 -0.3452886785324063, 4.111436260891228 -0.3692218341859923, 4.082362611684249 -0.3939527616946974, 4.055543858672244 -0.41469482992780504, 4.030946513297861 -0.4402235292916299, 4.006382656480829 -0.46176336937985707, 3.9840402073014207 -0.4864942968885624, 3.9684680281331595 -0.5088319088319091, 3.9528791046862226 -0.5327650644854949, 3.941799973629234 -0.5566982201390807, 3.923972898265999 -0.5782380602273078, 3.919624967236581 -0.598182356605296, 3.913016558585964 -0.6484419834778261, 3.911118873669402 -0.6723751391314119, 3.9112863164561573 -0.6971060666401172, 3.897963452056645 -0.7194436785834639, 3.882374528609708 -0.7433768342370495, 3.860048823708975 -0.7649166743252769, 3.817462541610827 -0.7880520581237431, 3.7883833109776224 -0.8127829856324482, 3.759315243196868 -0.8351205975757949, 3.732479745906187 -0.8590537532293809, 3.7079047262367046 -0.8821891370278472, 3.6810748103722486 -0.9053245208263132, 3.649746264970295 -0.9300554483350187, 3.6116809381145454 -0.9515952884232457, 3.5780919150913926 -0.9683484973807557, 3.557965292123382 -0.9827083907729073, 3.5423205544141934 -0.9994615997304173, 3.5199446166774333 diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/nco_ocp_Ecker2015_function.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/nco_ocp_Ecker2015_function.py deleted file mode 100644 index 6b49cb5e38..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/nco_ocp_Ecker2015_function.py +++ /dev/null @@ -1,57 +0,0 @@ -from pybamm import tanh - - -def nco_ocp_Ecker2015_function(sto): - """ - NCO OCP as a function of stochiometry [1, 2, 3]. - - References - ---------- - .. [1] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of - a lithium-ion battery i. determination of parameters." Journal of the - Electrochemical Society 162.9 (2015): A1836-A1848. - .. [2] Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of - a lithium-ion battery ii. model validation." Journal of The Electrochemical - Society 162.9 (2015): A1849-A1857. - .. [3] Richardson, Giles, et. al. "Generalised single particle models for - high-rate operation of graded lithium-ion electrodes: Systematic derivation - and validation." Electrochemica Acta 339 (2020): 135862 - - Parameters - ---------- - sto : :class:`pybamm.Symbol` - Stochiometry of material (li-fraction) - - """ - - # LiNiCo from Ecker, Kabitz, Laresgoiti et al. - # Analytical fit (WebPlotDigitizer + gnuplot) - # Parameter m modified by Simon O'Kane to improve fit - a = -2.35211 - c = 0.0747061 - d = 31.886 - e = 0.0219921 - g = 0.640243 - h = 5.48623 - i = 0.439245 - j = 3.82383 - k = 4.12167 - m = 0.176187 - n = 0.0542123 - o = 18.2919 - p = 0.762272 - q = 4.23285 - r = -6.34984 - s = 2.66395 - t = 0.174352 - - u_eq = ( - a * sto - - c * tanh(d * (sto - e)) - - r * tanh(s * (sto - t)) - - g * tanh(h * (sto - i)) - - j * tanh(k * (sto - m)) - - n * tanh(o * (sto - p)) - + q - ) - return u_eq diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/parameters.csv b/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/parameters.csv deleted file mode 100644 index 8e6429b34e..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/parameters.csv +++ /dev/null @@ -1,30 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrode properties,,, -Positive electrode conductivity [S.m-1],68.1,, -Maximum concentration in positive electrode [mol.m-3],48580,, -Measured positive electrode diffusivity [m2.s-1],[data]measured_nco_diffusivity_Ecker2015,, -Positive electrode diffusivity [m2.s-1],[function]nco_diffusivity_Ecker2015,, -Measured positive electrode OCP [V],[data]nco_ocp_Ecker2015,, -Positive electrode OCP [V],[function]nco_ocp_Ecker2015_function,, -,,, -# Microstructure,,, -Positive electrode porosity,0.296,, -Positive electrode active material volume fraction, 0.40832,, -Positive particle radius [m],6.5E-06,, -Positive electrode Bruggeman coefficient (electrolyte),1.5442267190786427,Solve for permeability factor B=0.1526=eps^b, -Positive electrode Bruggeman coefficient (electrode),0,No Bruggeman correction to solid conductivity, -Positive electrode exchange-current density [A.m-2],[function]nco_electrolyte_exchange_current_density_Ecker2015,, -,,, -# Interfacial reactions,,, -Positive electrode cation signed stoichiometry,-1,, -Positive electrode electrons in reaction,1,, -,,, -# Density,,, -Positive electrode density [kg.m-3],2895,Zhao et al. (2018), -,,, -# Thermal parameters,,, -Positive electrode specific heat capacity [J.kg-1.K-1],1270,Zhao et al. (2018), -Positive electrode thermal conductivity [W.m-1.K-1],1.04,Zhao et al. (2018), -Positive electrode OCP entropic change [V.K-1],0,, diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC532_Xu2019/README.md b/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC532_Xu2019/README.md deleted file mode 100644 index c1488b05b5..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC532_Xu2019/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Lithium Cobalt Oxide cathode parameters - -Parameters for a lithium Cobalt Oxide cathode, from the paper - -> Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: Experimentally Validated Model of the Apparent Capacity Loss." Journal of The Electrochemical Society 166.14 (2019): A3456-A3463. - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC532_Xu2019/__init__.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC532_Xu2019/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC532_Xu2019/nmc_electrolyte_exchange_current_density_Xu2019.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC532_Xu2019/nmc_electrolyte_exchange_current_density_Xu2019.py deleted file mode 100644 index 9a0f2dbbec..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC532_Xu2019/nmc_electrolyte_exchange_current_density_Xu2019.py +++ /dev/null @@ -1,35 +0,0 @@ -from pybamm import constants - - -def nmc_electrolyte_exchange_current_density_Xu2019(c_e, c_s_surf, c_s_max, T): - """ - Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in - EC:DMC. - - References - ---------- - .. [1] Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and - Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_s_surf : :class:`pybamm.Symbol` - Particle concentration [mol.m-3] - c_s_max : :class:`pybamm.Symbol` - Maximum particle concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - # assuming implicit correction of incorrect units from the paper - m_ref = 5.76e-11 * constants.F # (A/m2)(mol/m3)**1.5 - includes ref concentrations - - return m_ref * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC532_Xu2019/nmc_ocp_Xu2019.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC532_Xu2019/nmc_ocp_Xu2019.py deleted file mode 100644 index 824799838f..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC532_Xu2019/nmc_ocp_Xu2019.py +++ /dev/null @@ -1,49 +0,0 @@ -import pybamm - - -def nmc_ocp_Xu2019(sto): - """ - Nickel Managanese Cobalt Oxide (NMC) Open Circuit Potential (OCP) as a - function of the stochiometry, from [1]. - - References - ---------- - .. [1] Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and - Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: - Experimentally Validated Model of the Apparent Capacity Loss." Journal of The - Electrochemical Society 166.14 (2019): A3456-A3463. - - Parameters - ---------- - sto : :class:`pybamm.Symbol` - Stochiometry of material (li-fraction) - - """ - - # Values from Mohtat2020, might be more accurate - u_eq = ( - 4.3452 - - 1.6518 * sto - + 1.6225 * (sto**2) - - 2.0843 * (sto**3) - + 3.5146 * (sto**4) - - 2.2166 * (sto**5) - - 0.5623e-4 * pybamm.exp(109.451 * sto - 100.006) - ) - - # # only valid in range ~(0.25,0.95) - # u_eq = ( - # 5744.862289 * sto ** 9 - # - 35520.41099 * sto ** 8 - # + 95714.29862 * sto ** 7 - # - 147364.5514 * sto ** 6 - # + 142718.3782 * sto ** 5 - # - 90095.81521 * sto ** 4 - # + 37061.41195 * sto ** 3 - # - 9578.599274 * sto ** 2 - # + 1409.309503 * sto - # - 85.31153081 - # - 0.0003 * pybamm.exp(7.657 * sto ** 115) - # ) - - return u_eq diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC532_Xu2019/parameters.csv b/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC532_Xu2019/parameters.csv deleted file mode 100644 index 807231df57..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC532_Xu2019/parameters.csv +++ /dev/null @@ -1,25 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrode properties,,, -Positive electrode conductivity [S.m-1],100,, -Maximum concentration in positive electrode [mol.m-3],48230,, -Positive electrode diffusivity [m2.s-1],1e-14,, -Positive electrode OCP [V],[function]nmc_ocp_Xu2019,, -,,, -# Microstructure,,, -Positive electrode porosity,0.331,, -Positive electrode active material volume fraction,0.518,, -Positive particle radius [m],5.3E-06,, -Positive electrode Bruggeman coefficient (electrolyte),1.5,, -Positive electrode Bruggeman coefficient (electrode),1.5,, -,,, -# Thermal parameters,,, -Positive electrode OCP entropic change [V.K-1],0,, -,,, -# Interfacial reactions,,, -Positive electrode cation signed stoichiometry,-1,, -Positive electrode electrons in reaction,1,, -Positive electrode charge transfer coefficient,0.5,, -Positive electrode exchange-current density [A.m-2],[function]nmc_electrolyte_exchange_current_density_Xu2019,, -Positive electrode double-layer capacity [F.m-2],0.2,, diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/NMC_diffusivity_PeymanMPM.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/NMC_diffusivity_PeymanMPM.py deleted file mode 100644 index fc968d4e8e..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/NMC_diffusivity_PeymanMPM.py +++ /dev/null @@ -1,30 +0,0 @@ -from pybamm import exp, constants - - -def NMC_diffusivity_PeymanMPM(sto, T): - """ - NMC diffusivity as a function of stochiometry, in this case the - diffusivity is taken to be a constant. The value is taken from Peyman MPM. - - References - ---------- - .. [1] http://www.cchem.berkeley.edu/jsngrp/fortran.html - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - D_ref = 8 * 10 ** (-15) - E_D_s = 18550 - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) - - return D_ref * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/NMC_electrolyte_exchange_current_density_PeymanMPM.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/NMC_electrolyte_exchange_current_density_PeymanMPM.py deleted file mode 100644 index 6589674140..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/NMC_electrolyte_exchange_current_density_PeymanMPM.py +++ /dev/null @@ -1,35 +0,0 @@ -from pybamm import exp, constants - - -def NMC_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_max, T): - """ - Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in - EC:DMC. - - References - ---------- - .. Peyman MPM manuscript (to be submitted) - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_s_surf : :class:`pybamm.Symbol` - Particle concentration [mol.m-3] - c_s_max : :class:`pybamm.Symbol` - Maximum particle concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - m_ref = 4.824 * 10 ** (-6) # (A/m2)(mol/m3)**1.5 - includes ref concentrations - E_r = 39570 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - - return ( - m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 - ) diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/NMC_entropic_change_PeymanMPM.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/NMC_entropic_change_PeymanMPM.py deleted file mode 100644 index d938232f89..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/NMC_entropic_change_PeymanMPM.py +++ /dev/null @@ -1,39 +0,0 @@ -import pybamm - - -def NMC_entropic_change_PeymanMPM(sto, c_s_max): - """ - Nickel Manganese Cobalt (NMC) entropic change in open circuit potential (OCP) at - a temperature of 298.15K as a function of the OCP. The fit is taken from [1]. - - References - ---------- - .. [1] W. Le, I. Belharouak, D. Vissers, K. Amine, "In situ thermal study of - li1+ x [ni1/ 3co1/ 3mn1/ 3] 1- x o2 using isothermal micro-clorimetric - techniques", - J. of the Electrochemical Society 153 (11) (2006) A2147–A2151. - - Parameters - ---------- - sto : :class:`pybamm.Symbol` - Stochiometry of material (li-fraction) - - """ - - # Since the equation uses the OCP at each stoichiometry as input, - # we need OCP function here - - u_eq = ( - 4.3452 - - 1.6518 * sto - + 1.6225 * sto**2 - - 2.0843 * sto**3 - + 3.5146 * sto**4 - - 0.5623 * 10 ** (-4) * pybamm.exp(109.451 * sto - 100.006) - ) - - du_dT = ( - -800 + 779 * u_eq - 284 * u_eq**2 + 46 * u_eq**3 - 2.8 * u_eq**4 - ) * 10 ** (-3) - - return du_dT diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/NMC_ocp_PeymanMPM.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/NMC_ocp_PeymanMPM.py deleted file mode 100644 index c3166727c4..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/NMC_ocp_PeymanMPM.py +++ /dev/null @@ -1,35 +0,0 @@ -import pybamm - - -def NMC_ocp_PeymanMPM(sto): - """ - Nickel Managanese Cobalt Oxide (NMC) Open Circuit Potential (OCP) as a - function of the stochiometry. The fit is taken from Peyman MPM. - - References - ---------- - Peyman MPM manuscript (to be submitted) - - Parameters - ---------- - sto : :class:`pybamm.Symbol` - Stochiometry of material (li-fraction) - - """ - - u_eq = ( - 4.3452 - - 1.6518 * sto - + 1.6225 * (sto**2) - - 2.0843 * (sto**3) - + 3.5146 * (sto**4) - - 2.2166 * (sto**5) - - 0.5623e-4 * pybamm.exp(109.451 * sto - 100.006) - ) - - return u_eq - - -# if __name__ == "__main__": # pragma: no cover -# x = pybamm.linspace(0, 1) -# pybamm.plot(x, NMC_ocp_PeymanMPM(x)) diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/__init__.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/parameters.csv b/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/parameters.csv deleted file mode 100644 index e07eeaf17e..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/NMC_UMBL_Mohtat2020/parameters.csv +++ /dev/null @@ -1,32 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrode properties,,, -Positive electrode conductivity [S.m-1],100,Scott Moura FastDFN,no info from Peyman MPM -Maximum concentration in positive electrode [mol.m-3],35380,Peyman MPM, nickel manganese cobalt oxide -Positive electrode diffusivity [m2.s-1],[function]NMC_diffusivity_PeymanMPM,, -Positive electrode OCP [V],[function]NMC_ocp_PeymanMPM,, -,,, -# Microstructure,,, -Positive electrode porosity,0.3,Peyman MPM, -Positive electrode active material volume fraction,0.445,Peyman MPM,rest is binder -Positive particle radius [m],3.5E-06,Peyman MPM, -Positive electrode Bruggeman coefficient (electrode),1.5,Peyman MPM, -Positive electrode Bruggeman coefficient (electrolyte),1.5,Peyman MPM, -Positive electrode transport efficiency,0.16, -,,, -# Interfacial reactions,,, -Positive electrode cation signed stoichiometry,-1,,no info from Peyman MPM -Positive electrode electrons in reaction,1,,no info from Peyman MPM -Positive electrode reference exchange-current density [A.m-2(m3.mol)1.5],4.824E-06,Peyman MPM,converted unit -Positive electrode charge transfer coefficient,0.5,Peyman MPM, -Positive electrode double-layer capacity [F.m-2],0.2,,no info from Peyman MPM -Positive electrode exchange-current density [A.m-2],[function]NMC_electrolyte_exchange_current_density_PeymanMPM,, -,,, -# Density,,, -Positive electrode density [kg.m-3],3100,Peyman MPM, cell lumped value -,,, -# Thermal parameters,,, -Positive electrode specific heat capacity [J.kg-1.K-1],1100,Peyman MPM, cell lumped value -Positive electrode thermal conductivity [W.m-1.K-1],2.1,,no info from Peyman MPM -Positive electrode OCP entropic change [V.K-1],[function]NMC_entropic_change_PeymanMPM, diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/README.md b/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/README.md deleted file mode 100644 index 8f2719beb1..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Lithium Cobalt Oxide positive electrode parameters - -Parameters for a lithium Cobalt Oxide positive electrode, from the paper - -> Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), A3693-A3706. - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/__init__.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/lico2_data_example.csv b/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/lico2_data_example.csv deleted file mode 100644 index 5f2f5fef15..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/lico2_data_example.csv +++ /dev/null @@ -1,50 +0,0 @@ -0.000000000000000000e+00, 4.714135898019971016e+00 -2.040816326530612082e-02, 4.708899441575220557e+00 -4.081632653061224164e-02, 4.702448345762175741e+00 -6.122448979591836593e-02, 4.694558534379876136e+00 -8.163265306122448328e-02, 4.684994372928071193e+00 -1.020408163265306006e-01, 4.673523893805322516e+00 -1.224489795918367319e-01, 4.659941254449398329e+00 -1.428571428571428492e-01, 4.644096031712390271e+00 -1.632653061224489666e-01, 4.625926611260677390e+00 -1.836734693877550839e-01, 4.605491824833229053e+00 -2.040816326530612013e-01, 4.582992038370575116e+00 -2.244897959183673186e-01, 4.558769704421606228e+00 -2.448979591836734637e-01, 4.533281647154224103e+00 -2.653061224489795533e-01, 4.507041620859735254e+00 -2.857142857142856984e-01, 4.480540404981123714e+00 -3.061224489795917880e-01, 4.454158468368703439e+00 -3.265306122448979331e-01, 4.428089899175588151e+00 -3.469387755102040782e-01, 4.402295604083254155e+00 -3.673469387755101678e-01, 4.376502631465185367e+00 -3.877551020408163129e-01, 4.350272100879827519e+00 -4.081632653061224025e-01, 4.323179536958428493e+00 -4.285714285714285476e-01, 4.295195829713853719e+00 -4.489795918367346372e-01, 4.267407675466301065e+00 -4.693877551020407823e-01, 4.243081968022011985e+00 -4.897959183673469274e-01, 4.220583168834260768e+00 -5.102040816326530726e-01, 4.177032236370062712e+00 -5.306122448979591066e-01, 4.134943568540559333e+00 -5.510204081632652517e-01, 4.075402582839823928e+00 -5.714285714285713969e-01, 4.055407164381796825e+00 -5.918367346938775420e-01, 4.036052896449991323e+00 -6.122448979591835760e-01, 4.012970397550268409e+00 -6.326530612244897211e-01, 3.990385577539371287e+00 -6.530612244897958663e-01, 3.970744780585252709e+00 -6.734693877551020114e-01, 3.954753574690877738e+00 -6.938775510204081565e-01, 3.942237451863396025e+00 -7.142857142857141906e-01, 3.932683425747200534e+00 -7.346938775510203357e-01, 3.925509771581312979e+00 -7.551020408163264808e-01, 3.920182838859009422e+00 -7.755102040816326259e-01, 3.916256861206461881e+00 -7.959183673469386600e-01, 3.913378070528176877e+00 -8.163265306122448051e-01, 3.911274218446639583e+00 -8.367346938775509502e-01, 3.909739285381772067e+00 -8.571428571428570953e-01, 3.908613829807601192e+00 -8.775510204081632404e-01, 3.907726324580658162e+00 -8.979591836734692745e-01, 3.906474088522892796e+00 -9.183673469387754196e-01, 3.900204875423951556e+00 -9.387755102040815647e-01, 3.848912814816038974e+00 -9.591836734693877098e-01, 3.445226042113884724e+00 -9.795918367346938549e-01, 1.687177743081021308e+00 -1.000000000000000000e+00, 6.378908986260003328e-03 diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/lico2_diffusivity_Dualfoil1998.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/lico2_diffusivity_Dualfoil1998.py deleted file mode 100644 index d4c0038ee1..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/lico2_diffusivity_Dualfoil1998.py +++ /dev/null @@ -1,29 +0,0 @@ -from pybamm import exp, constants - - -def lico2_diffusivity_Dualfoil1998(sto, T): - """ - LiCo2 diffusivity as a function of stochiometry, in this case the - diffusivity is taken to be a constant. The value is taken from Dualfoil [1]. - - References - ---------- - .. [1] http://www.cchem.berkeley.edu/jsngrp/fortran.html - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - D_ref = 1 * 10 ** (-13) - E_D_s = 18550 - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) - - return D_ref * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/lico2_electrolyte_exchange_current_density_Dualfoil1998.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/lico2_electrolyte_exchange_current_density_Dualfoil1998.py deleted file mode 100644 index 9ff868ed86..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/lico2_electrolyte_exchange_current_density_Dualfoil1998.py +++ /dev/null @@ -1,35 +0,0 @@ -from pybamm import exp, constants - - -def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_max, T): - """ - Exchange-current density for Butler-Volmer reactions between lico2 and LiPF6 in - EC:DMC. - - References - ---------- - .. [2] http://www.cchem.berkeley.edu/jsngrp/fortran.html - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_s_surf : :class:`pybamm.Symbol` - Particle concentration [mol.m-3] - c_s_max : :class:`pybamm.Symbol` - Maximum particle concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - m_ref = 6 * 10 ** (-7) # (A/m2)(mol/m3)**1.5 - includes ref concentrations - E_r = 39570 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - - return ( - m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 - ) diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/lico2_entropic_change_Moura2016.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/lico2_entropic_change_Moura2016.py deleted file mode 100644 index 9ff64b554c..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/lico2_entropic_change_Moura2016.py +++ /dev/null @@ -1,33 +0,0 @@ -from pybamm import cosh - - -def lico2_entropic_change_Moura2016(sto, c_s_max): - """ - Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at - a temperature of 298.15K as a function of the stochiometry. The fit is taken - from Scott Moura's FastDFN code [1]. - - References - ---------- - .. [1] https://github.com/scott-moura/fastDFN - - Parameters - ---------- - sto : :class:`pybamm.Symbol` - Stochiometry of material (li-fraction) - """ - # Since the equation for LiCo2 from this ref. has the stretch factor, - # should this too? If not, the "bumps" in the OCV don't line up. - stretch = 1.062 - sto = stretch * sto - - du_dT = ( - 0.07645 * (-54.4806 / c_s_max) * ((1.0 / cosh(30.834 - 54.4806 * sto)) ** 2) - + 2.1581 * (-50.294 / c_s_max) * ((cosh(52.294 - 50.294 * sto)) ** (-2)) - + 0.14169 * (19.854 / c_s_max) * ((cosh(11.0923 - 19.8543 * sto)) ** (-2)) - - 0.2051 * (5.4888 / c_s_max) * ((cosh(1.4684 - 5.4888 * sto)) ** (-2)) - - (0.2531 / 0.1316 / c_s_max) * ((cosh((-sto + 0.56478) / 0.1316)) ** (-2)) - - (0.02167 / 0.006 / c_s_max) * ((cosh((sto - 0.525) / 0.006)) ** (-2)) - ) - - return du_dT diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/lico2_ocp_Dualfoil1998.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/lico2_ocp_Dualfoil1998.py deleted file mode 100644 index 78dfee5ee4..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/lico2_ocp_Dualfoil1998.py +++ /dev/null @@ -1,39 +0,0 @@ -from pybamm import tanh - - -def lico2_ocp_Dualfoil1998(sto): - """ - Lithium Cobalt Oxide (LiCO2) Open Circuit Potential (OCP) as a a function of the - stochiometry. The fit is taken from Dualfoil [1]. Dualfoil states that the data - was measured by Oscar Garcia 2001 using Quallion electrodes for 0.5 < sto < 0.99 - and by Marc Doyle for sto<0.4 (for unstated electrodes). We could not find any - other records of the Garcia measurements. Doyles fits can be found in his - thesis [2] but we could not find any other record of his measurments. - - References - ---------- - .. [1] http://www.cchem.berkeley.edu/jsngrp/fortran.html - .. [2] CM Doyle. Design and simulation of lithium rechargeable batteries, - 1995. - - Parameters - ---------- - sto : :class:`pybamm.Symbol` - Stochiometry of material (li-fraction) - - """ - - stretch = 1.062 - sto = stretch * sto - - u_eq = ( - 2.16216 - + 0.07645 * tanh(30.834 - 54.4806 * sto) - + 2.1581 * tanh(52.294 - 50.294 * sto) - - 0.14169 * tanh(11.0923 - 19.8543 * sto) - + 0.2051 * tanh(1.4684 - 5.4888 * sto) - + 0.2531 * tanh((-sto + 0.56478) / 0.1316) - - 0.02167 * tanh((sto - 0.525) / 0.006) - ) - - return u_eq diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/parameters.csv b/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/parameters.csv deleted file mode 100644 index 0eb099582c..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Marquis2019/parameters.csv +++ /dev/null @@ -1,30 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrode properties,,, -Positive electrode conductivity [S.m-1],10,Scott Moura FastDFN,lithium cobalt oxide -Maximum concentration in positive electrode [mol.m-3],51217.9257309275,Scott Moura FastDFN, -Positive electrode diffusivity [m2.s-1],[function]lico2_diffusivity_Dualfoil1998,, -Positive electrode OCP [V],[function]lico2_ocp_Dualfoil1998,, -,,, -# Microstructure,,, -Positive electrode porosity,0.3,Scott Moura FastDFN,electrolyte volume fraction -Positive electrode active material volume fraction,0.5,, -Positive particle radius [m],1E-05,Scott Moura FastDFN, -Positive electrode Bruggeman coefficient (electrolyte),1.5,Scott Moura FastDFN, -Positive electrode Bruggeman coefficient (electrode),1.5,Scott Moura FastDFN, -,,, -# Interfacial reactions,,, -Positive electrode cation signed stoichiometry,-1,, -Positive electrode electrons in reaction,1,, -Positive electrode charge transfer coefficient,0.5,Scott Moura FastDFN, -Positive electrode double-layer capacity [F.m-2],0.2,, -Positive electrode exchange-current density [A.m-2],[function]lico2_electrolyte_exchange_current_density_Dualfoil1998,, -,,, -# Density,,, -Positive electrode density [kg.m-3],3262,, -,,, -# Thermal parameters,,, -Positive electrode specific heat capacity [J.kg-1.K-1],700,, -Positive electrode thermal conductivity [W.m-1.K-1],2.1,, -Positive electrode OCP entropic change [V.K-1],[function]lico2_entropic_change_Moura2016,, diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/README.md b/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/README.md deleted file mode 100644 index 45acd6d53e..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Lithium Cobalt Oxide positive electrode parameters - -Parameters for a lithium Cobalt Oxide positive electrode, from the paper - -> Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), A3693-A3706. -> P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko N. Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." (2004) - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/__init__.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/lico2_diffusivity_Ramadass2004.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/lico2_diffusivity_Ramadass2004.py deleted file mode 100644 index 7411432e06..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/lico2_diffusivity_Ramadass2004.py +++ /dev/null @@ -1,31 +0,0 @@ -from pybamm import exp, constants - - -def lico2_diffusivity_Ramadass2004(sto, T): - """ - LiCo2 diffusivity as a function of stochiometry, in this case the - diffusivity is taken to be a constant. The value is taken from Ramadass 2004. - - References - ---------- - .. [1] P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko - N. Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." - (2004) - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - D_ref = 1 * 10 ** (-14) - E_D_s = 18550 - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) - - return D_ref * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/lico2_electrolyte_exchange_current_density_Ramadass2004.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/lico2_electrolyte_exchange_current_density_Ramadass2004.py deleted file mode 100644 index a6de549c9e..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/lico2_electrolyte_exchange_current_density_Ramadass2004.py +++ /dev/null @@ -1,37 +0,0 @@ -from pybamm import exp, constants - - -def lico2_electrolyte_exchange_current_density_Ramadass2004(c_e, c_s_surf, c_s_max, T): - """ - Exchange-current density for Butler-Volmer reactions between lico2 and LiPF6 in - EC:DMC. - - References - ---------- - .. [1] P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko - N. Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." - (2004) - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_s_surf : :class:`pybamm.Symbol` - Particle concentration [mol.m-3] - c_s_max : :class:`pybamm.Symbol` - Maximum particle concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - m_ref = 2.252 * 10 ** (-6) # (A/m2)(mol/m3)**1.5 - E_r = 39570 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - - return ( - m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 - ) diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/lico2_entropic_change_Moura2016.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/lico2_entropic_change_Moura2016.py deleted file mode 100644 index 9ff64b554c..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/lico2_entropic_change_Moura2016.py +++ /dev/null @@ -1,33 +0,0 @@ -from pybamm import cosh - - -def lico2_entropic_change_Moura2016(sto, c_s_max): - """ - Lithium Cobalt Oxide (LiCO2) entropic change in open circuit potential (OCP) at - a temperature of 298.15K as a function of the stochiometry. The fit is taken - from Scott Moura's FastDFN code [1]. - - References - ---------- - .. [1] https://github.com/scott-moura/fastDFN - - Parameters - ---------- - sto : :class:`pybamm.Symbol` - Stochiometry of material (li-fraction) - """ - # Since the equation for LiCo2 from this ref. has the stretch factor, - # should this too? If not, the "bumps" in the OCV don't line up. - stretch = 1.062 - sto = stretch * sto - - du_dT = ( - 0.07645 * (-54.4806 / c_s_max) * ((1.0 / cosh(30.834 - 54.4806 * sto)) ** 2) - + 2.1581 * (-50.294 / c_s_max) * ((cosh(52.294 - 50.294 * sto)) ** (-2)) - + 0.14169 * (19.854 / c_s_max) * ((cosh(11.0923 - 19.8543 * sto)) ** (-2)) - - 0.2051 * (5.4888 / c_s_max) * ((cosh(1.4684 - 5.4888 * sto)) ** (-2)) - - (0.2531 / 0.1316 / c_s_max) * ((cosh((-sto + 0.56478) / 0.1316)) ** (-2)) - - (0.02167 / 0.006 / c_s_max) * ((cosh((sto - 0.525) / 0.006)) ** (-2)) - ) - - return du_dT diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/lico2_ocp_Ramadass2004.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/lico2_ocp_Ramadass2004.py deleted file mode 100644 index 7615a60823..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/lico2_ocp_Ramadass2004.py +++ /dev/null @@ -1,39 +0,0 @@ -def lico2_ocp_Ramadass2004(sto): - """ - Lithium Cobalt Oxide (LiCO2) Open Circuit Potential (OCP) as a a function of the - stochiometry. The fit is taken from Ramadass 2004. Stretch is considered the - overhang area negative electrode / area positive electrode, in Ramadass 2002. - - References - ---------- - .. [1] P. Ramadass, Bala Haran, Parthasarathy M. Gomadam, Ralph White, and Branko - N. Popov. "Development of First Principles Capacity Fade Model for Li-Ion Cells." - (2004) - - Parameters - ---------- - sto : :class:`pybamm.Symbol` - Stochiometry of material (li-fraction) - - """ - - stretch = 1.13 - sto = stretch * sto - - u_eq = ( - -4.656 - + 88.669 * (sto**2) - - 401.119 * (sto**4) - + 342.909 * (sto**6) - - 462.471 * (sto**8) - + 433.434 * (sto**10) - ) / ( - -1 - + 18.933 * (sto**2) - - 79.532 * (sto**4) - + 37.311 * (sto**6) - - 73.083 * (sto**8) - + 95.96 * (sto**10) - ) - - return u_eq diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/parameters.csv b/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/parameters.csv deleted file mode 100644 index ed5a539574..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/parameters.csv +++ /dev/null @@ -1,30 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrode properties,,, -Positive electrode conductivity [S.m-1],100,Ramadass,lithium cobalt oxide -Maximum concentration in positive electrode [mol.m-3],51555,Ramadass, -Positive electrode diffusivity [m2.s-1],[function]lico2_diffusivity_Ramadass2004,, -Positive electrode OCP [V],[function]lico2_ocp_Ramadass2004,, -,,, -# Microstructure,,, -Positive electrode porosity,0.385,Ramadass,electrolyte volume fraction -Positive electrode active material volume fraction,0.59,Ramadass, -Positive particle radius [m],2e-06,Ramadass, -Positive electrode Bruggeman coefficient (electrolyte),4,Ramadass, -Positive electrode Bruggeman coefficient (electrode),4,Ramadass, -,,, -# Interfacial reactions,,, -Positive electrode cation signed stoichiometry,-1,, -Positive electrode electrons in reaction,1,, -Positive electrode charge transfer coefficient,0.5,Ramadass, -Positive electrode double-layer capacity [F.m-2],0.2,, -Positive electrode exchange-current density [A.m-2],[function]lico2_electrolyte_exchange_current_density_Ramadass2004,, -,,, -# Density,,, -Positive electrode density [kg.m-3],3262,, -,,, -# Thermal parameters,,, -Positive electrode specific heat capacity [J.kg-1.K-1],700,, -Positive electrode thermal conductivity [W.m-1.K-1],2.1,, -Positive electrode OCP entropic change [V.K-1],[function]lico2_entropic_change_Moura2016,, diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/README.md b/pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/README.md deleted file mode 100644 index e87e0422b8..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Nickel Cobalt Aluminium (NCA) positive electrode parameters - -Parameters for an NCA positive electrode, from the paper - -> Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - -Note, only an effective cell volumetric heat capacity is provided in the paper. We therefore used the values for the density and specific heat capacity reported in the Marquis2019 parameter set in each region and multiplied each density by the ratio of the volumetric heat capacity provided in smith to the calculated value. This ensures that the values produce the same effective cell volumetric heat capacity. This works fine for thermal models that are averaged over the x-direction but not for full (PDE in x direction) thermal models. We do the same for the planar effective thermal conductivity. diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/__init__.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/nca_diffusivity_Kim2011.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/nca_diffusivity_Kim2011.py deleted file mode 100644 index fec5ecd4ab..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/nca_diffusivity_Kim2011.py +++ /dev/null @@ -1,31 +0,0 @@ -from pybamm import exp, constants - - -def nca_diffusivity_Kim2011(sto, T): - """ - NCA diffusivity as a function of stochiometry [1]. - - References - ---------- - .. [1] Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. - (2011). Multi-domain modeling of lithium-ion batteries encompassing - multi-physics in varied length scales. Journal of The Electrochemical - Society, 158(8), A955-A969. - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - D_ref = 3 * 10 ** (-15) - E_D_s = 2e4 - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) - - return D_ref * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/nca_electrolyte_exchange_current_density_Kim2011.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/nca_electrolyte_exchange_current_density_Kim2011.py deleted file mode 100644 index 8c5141875c..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/nca_electrolyte_exchange_current_density_Kim2011.py +++ /dev/null @@ -1,50 +0,0 @@ -from pybamm import exp, constants, Parameter - - -def nca_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, c_s_max, T): - """ - Exchange-current density for Butler-Volmer reactions between NCA and LiPF6 in EC:DMC - [1]. - - References - ---------- - .. [1] Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. - (2011). Multi-domain modeling of lithium-ion batteries encompassing - multi-physics in varied length scales. Journal of The Electrochemical - Society, 158(8), A955-A969. - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_s_surf : :class:`pybamm.Symbol` - Particle concentration [mol.m-3] - c_s_max : :class:`pybamm.Symbol` - Maximum particle concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - i0_ref = 4 # reference exchange current density at 100% SOC - sto = 0.41 # stochiometry at 100% SOC - c_s_ref = sto * c_s_max # reference electrode concentration - c_e_ref = Parameter("Typical electrolyte concentration [mol.m-3]") - alpha = 0.5 # charge transfer coefficient - - m_ref = i0_ref / ( - c_e_ref**alpha * (c_s_max - c_s_ref) ** alpha * c_s_ref**alpha - ) - E_r = 3e4 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - - return ( - m_ref - * arrhenius - * c_e**alpha - * c_s_surf**alpha - * (c_s_max - c_s_surf) ** alpha - ) diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/nca_ocp_Kim2011_data.csv b/pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/nca_ocp_Kim2011_data.csv deleted file mode 100644 index dd00060753..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/nca_ocp_Kim2011_data.csv +++ /dev/null @@ -1,75 +0,0 @@ -0.370214428274133, 4.210440859985937 -0.37577436378229034, 4.198214873372019 -0.3836904770360269, 4.182142025684674 -0.3918959828337426, 4.165163132847251 -0.40106922140226364, 4.149604765177982 -0.40686180736573874, 4.138286599370602 -0.4116896199858422, 4.129799619141419 -0.4194137255876832, 4.115653556008545 -0.4266554445178383, 4.10292308566477 -0.4329304171529992, 4.090189327068291 -0.4396907358872798, 4.0802916864290655 -0.44548430832656627, 4.070390757537136 -0.4532103868800297, 4.059079168235163 -0.45852157264763016, 4.050593832132332 -0.4628660121202365, 4.042105207776797 -0.4710764502970082, 4.032212499516627 -0.47638763606460877, 4.023727163413795 -0.4836313279463863, 4.013831166900922 -0.48942490038567266, 4.0039302380089925 -0.4981187117099415, 3.994039173875174 -0.5077763099017708, 3.979899687247709 -0.5164711077018508, 3.971425860029342 -0.5280592390562348, 3.9530412391609326 -0.537716837248064, 3.938901752533467 -0.5493089145056929, 3.9261860793268606 -0.5565516199116592, 3.914872845898536 -0.5671749779226715, 3.8993194106083244 -0.5768345490661232, 3.88801439781176 -0.5869745339296383, 3.872459318395196 -0.5961487589739706, 3.8583181876413786 -0.6087065960507823, 3.844188565772025 -0.6159493014567486, 3.832875332343701 -0.6246431127810175, 3.822984268209883 -0.6352684437436521, 3.8102653067505723 -0.6463781343295951, 3.798965226333064 -0.660386090848898, 3.784840536842767 -0.6763275399581893, 3.7707224238578783 -0.6917856159199836, 3.756602666746637 -0.7038630392767319, 3.7467231114972837 -0.7246372333851825, 3.7312042028604644 -0.7391305360036051, 3.71991563132742 -0.7531414519503417, 3.710042652583475 -0.7676347545687643, 3.698754081050431 -0.7797121779255124, 3.6888745258010776 -0.7917886148064496, 3.677577733636274 -0.8043484248348838, 3.6662825855978216 -0.8144923556016439, 3.65639645384306 -0.8260854193350838, 3.645098017551904 -0.8357449904785356, 3.6337930047553395 -0.8463732808686039, 3.6253257540423807 -0.8560318655362443, 3.612603504330366 -0.8652100364838214, 3.604131321238351 -0.8739028613322789, 3.5928230201890825 -0.8840477785748505, 3.5843541253497717 -0.8927425763749305, 3.5758802981314046 -0.9024031339941933, 3.5659925222502906 -0.9125490377125759, 3.5589408643264306 -0.9222105818076499, 3.5504703253607675 -0.9338056184927125, 3.5420063629005125 -0.9482959616837011, 3.526466080621117 -0.957951586923908, 3.5094921201627503 -0.965192319378252, 3.495344412903525 -0.9709740541078039, 3.4684366410261873 -0.9743448419547373, 3.450024070009794 -0.976744937603432, 3.425939263078894 -0.9805892338397507, 3.393355967034346 -0.9820196237660176, 3.36501616110439 -0.9834510001680955, 3.3380935920898844 -0.9848843495217959, 3.3140054969062804 -0.9858323527763772, 3.287081283765423 -0.987258796799399, 3.2530725301736645 -0.9896421223593032, 3.204894695680104 -0.9905703960976598, 3.1496257442302342 -0.9915055751666949, 3.104277451188519 -0.9933828386354436, 3.023501523513243 \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/parameters.csv b/pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/parameters.csv deleted file mode 100644 index 8ec2ab9529..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/parameters.csv +++ /dev/null @@ -1,30 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrode properties,,, -Positive electrode conductivity [S.m-1],10,, -Maximum concentration in positive electrode [mol.m-3],4.9E4,, -Positive electrode diffusivity [m2.s-1],[function]nca_diffusivity_Kim2011,, -Positive electrode OCP [V],[data]nca_ocp_Kim2011_data, -,,, -# Microstructure,,, -Positive electrode porosity,0.4,, -Positive electrode active material volume fraction,0.41,, -Positive particle radius [m],1.633E-6,, -Positive electrode Bruggeman coefficient (electrolyte),2,, -Positive electrode Bruggeman coefficient (electrode),2,, -,,, -# Interfacial reactions,,, -Positive electrode cation signed stoichiometry,-1,, -Positive electrode electrons in reaction,1,, -Positive electrode charge transfer coefficient,0.5,, -Positive electrode double-layer capacity [F.m-2],0.2, Not provided in Kim2011, -Positive electrode exchange-current density [A.m-2],[function]nca_electrolyte_exchange_current_density_Kim2011,, -,,, -# Density,,, -Positive electrode density [kg.m-3],4205.82708, 3262 * 1.28934, -,,, -# Thermal parameters,,, -Positive electrode specific heat capacity [J.kg-1.K-1],700,, -Positive electrode thermal conductivity [W.m-1.K-1],1.4007, 2.1 * 0.667, -Positive electrode OCP entropic change [V.K-1],0,, diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/README.md b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/README.md deleted file mode 100644 index 9bd8671867..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# NMC 811 positive electrode parameters - -Parameters for an LG M50 NMC 811 positive electrode, from the paper - -> Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for Parameterization of Multi-scale Lithium-ion Battery Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of the Electrochemical Society 167 (2020): 080534 - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/__init__.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/nmc_LGM50_electrolyte_exchange_current_density_Chen2020.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/nmc_LGM50_electrolyte_exchange_current_density_Chen2020.py deleted file mode 100644 index d1fca0d6cc..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/nmc_LGM50_electrolyte_exchange_current_density_Chen2020.py +++ /dev/null @@ -1,38 +0,0 @@ -from pybamm import exp, constants - - -def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_max, T): - """ - Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in - EC:DMC. - - References - ---------- - .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the - Electrochemical Society 167 (2020): 080534. - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_s_surf : :class:`pybamm.Symbol` - Particle concentration [mol.m-3] - c_s_max : :class:`pybamm.Symbol` - Maximum particle concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - m_ref = 3.42e-6 # (A/m2)(mol/m3)**1.5 - includes ref concentrations - E_r = 17800 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - - return ( - m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 - ) diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/nmc_LGM50_ocp_Chen2020.csv b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/nmc_LGM50_ocp_Chen2020.csv deleted file mode 100644 index 7dc9adc71c..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/nmc_LGM50_ocp_Chen2020.csv +++ /dev/null @@ -1,243 +0,0 @@ -# OCP data for LG M50 NMC positive electrode -# sto,ocp -# extra point to avoid extrapolation -0.248797280909757,4.40 -# experimentally measured data -0.266145163492257,4.29356530000000 -0.268867632314474,4.27686210000000 -0.271590113475307,4.26470180000000 -0.274312581168247,4.25403120000000 -0.277035051828500,4.24494460000000 -0.279757525339878,4.23648790000000 -0.282479995064952,4.23026470000000 -0.285202473437965,4.22255280000000 -0.287924947671149,4.21825740000000 -0.290647431425727,4.21329400000000 -0.293369917257952,4.20903730000000 -0.296092386692851,4.20512390000000 -0.298814868849636,4.20126770000000 -0.301537350055390,4.19815640000000 -0.304259830904681,4.19552180000000 -0.306982312259254,4.19311670000000 -0.309704783671781,4.18897440000000 -0.312427252746966,4.18815330000000 -0.315149732455743,4.18658830000000 -0.317872201316148,4.18502280000000 -0.320594658973297,4.18322850000000 -0.323317140454362,4.18088050000000 -0.326039617362371,4.18057490000000 -0.328762086363981,4.17895220000000 -0.331484555867675,4.17681460000000 -0.334207025471543,4.17681460000000 -0.336929501255821,4.17528720000000 -0.339651973273663,4.17311100000000 -0.342374462458239,4.17267180000000 -0.345096938615155,4.17108770000000 -0.347819410074246,4.17022850000000 -0.350541895855318,4.16879700000000 -0.353264376316384,4.16698310000000 -0.355986846136589,4.16551350000000 -0.358709322969457,4.16345170000000 -0.361431798807600,4.15982480000000 -0.364154276288401,4.15717120000000 -0.366876742342325,4.15407900000000 -0.369599211442129,4.15041350000000 -0.372321688828519,4.14665320000000 -0.375044179100704,4.14233880000000 -0.377766654413886,4.13823460000000 -0.380489134491185,4.13382480000000 -0.383211609132993,4.13057990000000 -0.385934081264202,4.12723920000000 -0.388656550366338,4.12281040000000 -0.391379033718590,4.11861090000000 -0.394101506024207,4.11418200000000 -0.396823981011550,4.10960050000000 -0.399546445031954,4.10469480000000 -0.402268917913251,4.10047580000000 -0.404991398895142,4.09564640000000 -0.407713868869987,4.09096960000000 -0.410436337723266,4.08646440000000 -0.413158819617673,4.08184480000000 -0.415881292009550,4.07768300000000 -0.418603765047837,4.07333090000000 -0.421326243264316,4.06907370000000 -0.424048721985195,4.06472160000000 -0.426771203785911,4.06086540000000 -0.429493683560302,4.05647470000000 -0.432216157859838,4.05275250000000 -0.434938637930869,4.04924010000000 -0.437661112840513,4.04502110000000 -0.440383593375701,4.04198600000000 -0.443106070903017,4.03847360000000 -0.445828558295681,4.03517100000000 -0.448551031796266,4.03204060000000 -0.451273507249511,4.02892880000000 -0.453996003855954,4.02597000000000 -0.456718484235626,4.02274370000000 -0.459440954945593,4.01997570000000 -0.462163428115050,4.01751330000000 -0.464885915164505,4.01497460000000 -0.467608383790858,4.01220660000000 -0.470330853087581,4.00995400000000 -0.473053327146540,4.00756790000000 -0.475775805779291,4.00506690000000 -0.478498280251222,4.00231840000000 -0.481220742406741,3.99955010000000 -0.483943214533784,3.99693490000000 -0.486665690272151,3.99265890000000 -0.489388163807013,3.98895550000000 -0.492110637403290,3.98340030000000 -0.494833100364319,3.97830370000000 -0.497555571325341,3.97559290000000 -0.500278043298208,3.97076320000000 -0.503000516078447,3.96810980000000 -0.505722984627149,3.96356650000000 -0.508445451410474,3.95944330000000 -0.511167916160712,3.95566340000000 -0.513890383743419,3.95215110000000 -0.516612844491088,3.94791320000000 -0.519335313666282,3.94382810000000 -0.522057772177089,3.94008660000000 -0.524780244833149,3.93623040000000 -0.527502711490113,3.93142010000000 -0.530225181904053,3.92838480000000 -0.532947653094719,3.92422320000000 -0.535670116160643,3.91920280000000 -0.538392582186640,3.91662570000000 -0.541115055303321,3.91179610000000 -0.543837527290114,3.90815000000000 -0.546559999225906,3.90387390000000 -0.549282473099007,3.89955970000000 -0.552004938974192,3.89591360000000 -0.554727397110192,3.89093140000000 -0.557449855597342,3.88726620000000 -0.560172327720750,3.88310480000000 -0.562894802037505,3.87934420000000 -0.565617285773971,3.87476280000000 -0.568339758495162,3.87025760000000 -0.571062218638907,3.86668780000000 -0.573784688274245,3.86239270000000 -0.576507157299816,3.85817410000000 -0.579229628899775,3.85414600000000 -0.581952099068137,3.84998460000000 -0.584674561619127,3.84500220000000 -0.587397020754022,3.84225340000000 -0.590119479693579,3.83809190000000 -0.592841939924731,3.83415960000000 -0.595564403547528,3.83093330000000 -0.598286868612232,3.82721090000000 -0.601009347425258,3.82316400000000 -0.603731818208659,3.81923150000000 -0.606454292118578,3.81598640000000 -0.609176768553542,3.81230210000000 -0.611899246291593,3.80903790000000 -0.614621716230771,3.80716710000000 -0.617344187685711,3.80405550000000 -0.620066659099430,3.80136390000000 -0.622789138734988,3.79708790000000 -0.625511617433531,3.79533170000000 -0.628234084250521,3.79206730000000 -0.630956557807740,3.78838300000000 -0.633679025844496,3.78553890000000 -0.636401495064267,3.78382060000000 -0.639123970191964,3.78111000000000 -0.641846449308652,3.77948740000000 -0.644568927771322,3.77692940000000 -0.647291404914478,3.77360800000000 -0.650013889129768,3.76959920000000 -0.652736367967840,3.76902650000000 -0.655458839536009,3.76627760000000 -0.658181310438348,3.76429220000000 -0.660903786306585,3.76268890000000 -0.663626254736975,3.76037910000000 -0.666348738333431,3.75755380000000 -0.669071213782409,3.75520560000000 -0.671793687532754,3.75331590000000 -0.674516164245807,3.75071980000000 -0.677238646529723,3.74875350000000 -0.679961125087374,3.74714990000000 -0.682683607484084,3.74428650000000 -0.685406075721887,3.74230120000000 -0.688128545911254,3.74006770000000 -0.690851028189204,3.73857880000000 -0.693573498264774,3.73453190000000 -0.696295966701841,3.73392110000000 -0.699018434718856,3.73016050000000 -0.701740901054719,3.73010330000000 -0.704463378887980,3.72783160000000 -0.707185849109592,3.72515890000000 -0.709908327081682,3.72386100000000 -0.712630805246016,3.72157030000000 -0.715353278555653,3.71912670000000 -0.718075742809693,3.71727510000000 -0.720798219830455,3.71570970000000 -0.723520694189328,3.71309450000000 -0.726243165189205,3.70994470000000 -0.728965639893390,3.70710040000000 -0.731688103753489,3.70456150000000 -0.734410565090537,3.70358800000000 -0.737133034756847,3.70208000000000 -0.739855506564427,3.70026640000000 -0.742577987473750,3.69721220000000 -0.745300467667417,3.69528410000000 -0.748022934626483,3.69293620000000 -0.750745403364983,3.68980550000000 -0.753467872385266,3.68909910000000 -0.756190338725858,3.68652200000000 -0.758912814805470,3.68497590000000 -0.761635286778263,3.68216970000000 -0.764357761597942,3.68081430000000 -0.767080238030274,3.67865730000000 -0.769802703134331,3.67619470000000 -0.772525170787922,3.67476300000000 -0.775247647398611,3.67128870000000 -0.777970116013000,3.66972330000000 -0.780692583791189,3.66789080000000 -0.783415062024859,3.66525650000000 -0.786137529881339,3.66306110000000 -0.788859991839412,3.66027400000000 -0.791582456579698,3.65836520000000 -0.794304940665857,3.65548280000000 -0.797027408651066,3.65229490000000 -0.799749868022516,3.64998480000000 -0.802472336866029,3.64704510000000 -0.805194798213859,3.64055470000000 -0.807917271231816,3.63834050000000 -0.810639738427300,3.63507600000000 -0.813362206944959,3.63354900000000 -0.816084680519184,3.63223170000000 -0.818807143264440,3.63068560000000 -0.821529609046551,3.62839480000000 -0.824252075066457,3.62684870000000 -0.826974531979797,3.62430980000000 -0.829696999423772,3.62236260000000 -0.832419462686953,3.61936550000000 -0.835141923021117,3.61776210000000 -0.837864385539901,3.61585310000000 -0.840586843407759,3.61283710000000 -0.843309308653791,3.61180620000000 -0.846031768598797,3.60945820000000 -0.848754235411593,3.60724380000000 -0.851476699467683,3.60499120000000 -0.854199161102801,3.60308220000000 -0.856921623426447,3.60126880000000 -0.859644087674256,3.59958890000000 -0.862366559650803,3.59764170000000 -0.865089024293406,3.59519840000000 -0.867811486910360,3.59384300000000 -0.870533951869352,3.59162860000000 -0.873256418218254,3.58949070000000 -0.875978884501499,3.58742900000000 -0.878701351769785,3.58529090000000 -0.881423826658424,3.58347750000000 -0.884146298809852,3.58177850000000 -0.886868771867091,3.58011770000000 -0.889591240142391,3.57788420000000 -0.892313713281813,3.57633810000000 -0.895036201752086,3.57378010000000 -0.897758683022040,3.57210020000000 -0.900481161991173,3.57021020000000 -0.903203643476430,3.56849220000000 -0.905926128940627,3.56721330000000 -# extra points to avoid extrapolation -1,3.52302166875714 \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/nmc_LGM50_ocp_Chen2020.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/nmc_LGM50_ocp_Chen2020.py deleted file mode 100644 index 2038c2eb76..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/nmc_LGM50_ocp_Chen2020.py +++ /dev/null @@ -1,35 +0,0 @@ -from pybamm import tanh - - -def nmc_LGM50_ocp_Chen2020(sto): - """ - LG M50 NMC open circuit potential as a function of stochiometry, fit taken - from [1]. - - References - ---------- - .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the - Electrochemical Society 167 (2020): 080534. - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - - Returns - ------- - :class:`pybamm.Symbol` - Open circuit potential - """ - - u_eq = ( - -0.8090 * sto - + 4.4875 - - 0.0428 * tanh(18.5138 * (sto - 0.5542)) - - 17.7326 * tanh(15.7890 * (sto - 0.3117)) - + 17.5842 * tanh(15.9308 * (sto - 0.3120)) - ) - - return u_eq diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/parameters.csv b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/parameters.csv deleted file mode 100644 index 0ba1e0fbe4..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/parameters.csv +++ /dev/null @@ -1,30 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrode properties,,, -Positive electrode conductivity [S.m-1],0.18,Chen 2020, -Maximum concentration in positive electrode [mol.m-3],63104,Chen 2020,tuned for 1C -Positive electrode diffusivity [m2.s-1],4E-15,Chen 2020,tuned for 1C -Positive electrode OCP [V],[function]nmc_LGM50_ocp_Chen2020,Chen 2020, -,,, -# Microstructure,,, -Positive electrode porosity,0.335,Chen 2020, -Positive electrode active material volume fraction,0.665,Chen 2020, -Positive particle radius [m],5.22E-6,Chen 2020, -Positive electrode Bruggeman coefficient (electrolyte),1.5,Chen 2020,theoretical -Positive electrode Bruggeman coefficient (electrode),1.5,default, -,,, -# Interfacial reactions,,, -Positive electrode cation signed stoichiometry,-1,, -Positive electrode electrons in reaction,1,, -Positive electrode charge transfer coefficient,0.5,Chen 2020, -Positive electrode double-layer capacity [F.m-2],0.2,, -Positive electrode exchange-current density [A.m-2],[function]nmc_LGM50_electrolyte_exchange_current_density_Chen2020,, -,,, -# Density,,, -Positive electrode density [kg.m-3],3262,default, -,,, -# Thermal parameters,,, -Positive electrode specific heat capacity [J.kg-1.K-1],700,default, -Positive electrode thermal conductivity [W.m-1.K-1],2.1,default, -Positive electrode OCP entropic change [V.K-1],0,, diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/README.md b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/README.md deleted file mode 100644 index a3775e61b6..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# NMC 811 positive electrode parameters - -Parameters for an LG M50 NMC 811 positive electrode, from the paper - -> Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. ["Lithium-ion battery degradation: how to model it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical Chemistry: Chemical Physics 24 (2022): 7909-7922 - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/__init__.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/cracking_rate_Ai2020.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/cracking_rate_Ai2020.py deleted file mode 100644 index 51299a21f0..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/cracking_rate_Ai2020.py +++ /dev/null @@ -1,32 +0,0 @@ -from pybamm import constants, exp - - -def cracking_rate_Ai2020(T_dim): - """ - Particle cracking rate as a function of temperature [1, 2]. - - References - ---------- - .. [1] > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). - Electrochemical Thermal-Mechanical Modelling of Stress Inhomogeneity in - Lithium-Ion Pouch Cells. Journal of The Electrochemical Society, 167(1), 013512 - DOI: 10.1149/2.0122001JES. - .. [2] > Deshpande, R., Verbrugge, M., Cheng, Y. T., Wang, J., & Liu, P. (2012). - Battery cycle life prediction with coupled chemical degradation and fatigue - mechanics. Journal of the Electrochemical Society, 159(10), A1730. - - Parameters - ---------- - T: :class:`pybamm.Symbol` - temperature, [K] - - Returns - ------- - k_cr: :class:`pybamm.Symbol` - cracking rate, [m/(Pa.m0.5)^m_cr] - where m_cr is another Paris' law constant - """ - k_cr = 3.9e-20 - Eac_cr = 0 # to be implemented - arrhenius = exp(Eac_cr / constants.R * (1 / T_dim - 1 / 298.15)) - return k_cr * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/nmc_LGM50_diffusivity_Chen2020.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/nmc_LGM50_diffusivity_Chen2020.py deleted file mode 100644 index bce5f98105..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/nmc_LGM50_diffusivity_Chen2020.py +++ /dev/null @@ -1,33 +0,0 @@ -from pybamm import exp, constants - - -def nmc_LGM50_diffusivity_Chen2020(sto, T): - """ - NMC diffusivity as a function of stoichiometry, in this case the - diffusivity is taken to be a constant. The value is taken from [1]. - - References - ---------- - .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the - Electrochemical Society 167 (2020): 080534. - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - D_ref = 4e-15 - E_D_s = 25000 # O'Kane et al. (2022), after Cabanero et al. (2018) - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) - - return D_ref * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/nmc_LGM50_electrolyte_exchange_current_density_Chen2020.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/nmc_LGM50_electrolyte_exchange_current_density_Chen2020.py deleted file mode 100644 index 5dc374143c..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/nmc_LGM50_electrolyte_exchange_current_density_Chen2020.py +++ /dev/null @@ -1,36 +0,0 @@ -from pybamm import exp, constants - - -def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_max, T): - """ - Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in - EC:DMC. - - References - ---------- - .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the - Electrochemical Society 167 (2020): 080534. - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_s_surf : :class:`pybamm.Symbol` - Particle concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - m_ref = 3.42e-6 # (A/m2)(mol/m3)**1.5 - includes ref concentrations - E_r = 17800 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - - return ( - m_ref * arrhenius * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 - ) diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/nmc_LGM50_ocp_Chen2020.csv b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/nmc_LGM50_ocp_Chen2020.csv deleted file mode 100644 index 7dc9adc71c..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/nmc_LGM50_ocp_Chen2020.csv +++ /dev/null @@ -1,243 +0,0 @@ -# OCP data for LG M50 NMC positive electrode -# sto,ocp -# extra point to avoid extrapolation -0.248797280909757,4.40 -# experimentally measured data -0.266145163492257,4.29356530000000 -0.268867632314474,4.27686210000000 -0.271590113475307,4.26470180000000 -0.274312581168247,4.25403120000000 -0.277035051828500,4.24494460000000 -0.279757525339878,4.23648790000000 -0.282479995064952,4.23026470000000 -0.285202473437965,4.22255280000000 -0.287924947671149,4.21825740000000 -0.290647431425727,4.21329400000000 -0.293369917257952,4.20903730000000 -0.296092386692851,4.20512390000000 -0.298814868849636,4.20126770000000 -0.301537350055390,4.19815640000000 -0.304259830904681,4.19552180000000 -0.306982312259254,4.19311670000000 -0.309704783671781,4.18897440000000 -0.312427252746966,4.18815330000000 -0.315149732455743,4.18658830000000 -0.317872201316148,4.18502280000000 -0.320594658973297,4.18322850000000 -0.323317140454362,4.18088050000000 -0.326039617362371,4.18057490000000 -0.328762086363981,4.17895220000000 -0.331484555867675,4.17681460000000 -0.334207025471543,4.17681460000000 -0.336929501255821,4.17528720000000 -0.339651973273663,4.17311100000000 -0.342374462458239,4.17267180000000 -0.345096938615155,4.17108770000000 -0.347819410074246,4.17022850000000 -0.350541895855318,4.16879700000000 -0.353264376316384,4.16698310000000 -0.355986846136589,4.16551350000000 -0.358709322969457,4.16345170000000 -0.361431798807600,4.15982480000000 -0.364154276288401,4.15717120000000 -0.366876742342325,4.15407900000000 -0.369599211442129,4.15041350000000 -0.372321688828519,4.14665320000000 -0.375044179100704,4.14233880000000 -0.377766654413886,4.13823460000000 -0.380489134491185,4.13382480000000 -0.383211609132993,4.13057990000000 -0.385934081264202,4.12723920000000 -0.388656550366338,4.12281040000000 -0.391379033718590,4.11861090000000 -0.394101506024207,4.11418200000000 -0.396823981011550,4.10960050000000 -0.399546445031954,4.10469480000000 -0.402268917913251,4.10047580000000 -0.404991398895142,4.09564640000000 -0.407713868869987,4.09096960000000 -0.410436337723266,4.08646440000000 -0.413158819617673,4.08184480000000 -0.415881292009550,4.07768300000000 -0.418603765047837,4.07333090000000 -0.421326243264316,4.06907370000000 -0.424048721985195,4.06472160000000 -0.426771203785911,4.06086540000000 -0.429493683560302,4.05647470000000 -0.432216157859838,4.05275250000000 -0.434938637930869,4.04924010000000 -0.437661112840513,4.04502110000000 -0.440383593375701,4.04198600000000 -0.443106070903017,4.03847360000000 -0.445828558295681,4.03517100000000 -0.448551031796266,4.03204060000000 -0.451273507249511,4.02892880000000 -0.453996003855954,4.02597000000000 -0.456718484235626,4.02274370000000 -0.459440954945593,4.01997570000000 -0.462163428115050,4.01751330000000 -0.464885915164505,4.01497460000000 -0.467608383790858,4.01220660000000 -0.470330853087581,4.00995400000000 -0.473053327146540,4.00756790000000 -0.475775805779291,4.00506690000000 -0.478498280251222,4.00231840000000 -0.481220742406741,3.99955010000000 -0.483943214533784,3.99693490000000 -0.486665690272151,3.99265890000000 -0.489388163807013,3.98895550000000 -0.492110637403290,3.98340030000000 -0.494833100364319,3.97830370000000 -0.497555571325341,3.97559290000000 -0.500278043298208,3.97076320000000 -0.503000516078447,3.96810980000000 -0.505722984627149,3.96356650000000 -0.508445451410474,3.95944330000000 -0.511167916160712,3.95566340000000 -0.513890383743419,3.95215110000000 -0.516612844491088,3.94791320000000 -0.519335313666282,3.94382810000000 -0.522057772177089,3.94008660000000 -0.524780244833149,3.93623040000000 -0.527502711490113,3.93142010000000 -0.530225181904053,3.92838480000000 -0.532947653094719,3.92422320000000 -0.535670116160643,3.91920280000000 -0.538392582186640,3.91662570000000 -0.541115055303321,3.91179610000000 -0.543837527290114,3.90815000000000 -0.546559999225906,3.90387390000000 -0.549282473099007,3.89955970000000 -0.552004938974192,3.89591360000000 -0.554727397110192,3.89093140000000 -0.557449855597342,3.88726620000000 -0.560172327720750,3.88310480000000 -0.562894802037505,3.87934420000000 -0.565617285773971,3.87476280000000 -0.568339758495162,3.87025760000000 -0.571062218638907,3.86668780000000 -0.573784688274245,3.86239270000000 -0.576507157299816,3.85817410000000 -0.579229628899775,3.85414600000000 -0.581952099068137,3.84998460000000 -0.584674561619127,3.84500220000000 -0.587397020754022,3.84225340000000 -0.590119479693579,3.83809190000000 -0.592841939924731,3.83415960000000 -0.595564403547528,3.83093330000000 -0.598286868612232,3.82721090000000 -0.601009347425258,3.82316400000000 -0.603731818208659,3.81923150000000 -0.606454292118578,3.81598640000000 -0.609176768553542,3.81230210000000 -0.611899246291593,3.80903790000000 -0.614621716230771,3.80716710000000 -0.617344187685711,3.80405550000000 -0.620066659099430,3.80136390000000 -0.622789138734988,3.79708790000000 -0.625511617433531,3.79533170000000 -0.628234084250521,3.79206730000000 -0.630956557807740,3.78838300000000 -0.633679025844496,3.78553890000000 -0.636401495064267,3.78382060000000 -0.639123970191964,3.78111000000000 -0.641846449308652,3.77948740000000 -0.644568927771322,3.77692940000000 -0.647291404914478,3.77360800000000 -0.650013889129768,3.76959920000000 -0.652736367967840,3.76902650000000 -0.655458839536009,3.76627760000000 -0.658181310438348,3.76429220000000 -0.660903786306585,3.76268890000000 -0.663626254736975,3.76037910000000 -0.666348738333431,3.75755380000000 -0.669071213782409,3.75520560000000 -0.671793687532754,3.75331590000000 -0.674516164245807,3.75071980000000 -0.677238646529723,3.74875350000000 -0.679961125087374,3.74714990000000 -0.682683607484084,3.74428650000000 -0.685406075721887,3.74230120000000 -0.688128545911254,3.74006770000000 -0.690851028189204,3.73857880000000 -0.693573498264774,3.73453190000000 -0.696295966701841,3.73392110000000 -0.699018434718856,3.73016050000000 -0.701740901054719,3.73010330000000 -0.704463378887980,3.72783160000000 -0.707185849109592,3.72515890000000 -0.709908327081682,3.72386100000000 -0.712630805246016,3.72157030000000 -0.715353278555653,3.71912670000000 -0.718075742809693,3.71727510000000 -0.720798219830455,3.71570970000000 -0.723520694189328,3.71309450000000 -0.726243165189205,3.70994470000000 -0.728965639893390,3.70710040000000 -0.731688103753489,3.70456150000000 -0.734410565090537,3.70358800000000 -0.737133034756847,3.70208000000000 -0.739855506564427,3.70026640000000 -0.742577987473750,3.69721220000000 -0.745300467667417,3.69528410000000 -0.748022934626483,3.69293620000000 -0.750745403364983,3.68980550000000 -0.753467872385266,3.68909910000000 -0.756190338725858,3.68652200000000 -0.758912814805470,3.68497590000000 -0.761635286778263,3.68216970000000 -0.764357761597942,3.68081430000000 -0.767080238030274,3.67865730000000 -0.769802703134331,3.67619470000000 -0.772525170787922,3.67476300000000 -0.775247647398611,3.67128870000000 -0.777970116013000,3.66972330000000 -0.780692583791189,3.66789080000000 -0.783415062024859,3.66525650000000 -0.786137529881339,3.66306110000000 -0.788859991839412,3.66027400000000 -0.791582456579698,3.65836520000000 -0.794304940665857,3.65548280000000 -0.797027408651066,3.65229490000000 -0.799749868022516,3.64998480000000 -0.802472336866029,3.64704510000000 -0.805194798213859,3.64055470000000 -0.807917271231816,3.63834050000000 -0.810639738427300,3.63507600000000 -0.813362206944959,3.63354900000000 -0.816084680519184,3.63223170000000 -0.818807143264440,3.63068560000000 -0.821529609046551,3.62839480000000 -0.824252075066457,3.62684870000000 -0.826974531979797,3.62430980000000 -0.829696999423772,3.62236260000000 -0.832419462686953,3.61936550000000 -0.835141923021117,3.61776210000000 -0.837864385539901,3.61585310000000 -0.840586843407759,3.61283710000000 -0.843309308653791,3.61180620000000 -0.846031768598797,3.60945820000000 -0.848754235411593,3.60724380000000 -0.851476699467683,3.60499120000000 -0.854199161102801,3.60308220000000 -0.856921623426447,3.60126880000000 -0.859644087674256,3.59958890000000 -0.862366559650803,3.59764170000000 -0.865089024293406,3.59519840000000 -0.867811486910360,3.59384300000000 -0.870533951869352,3.59162860000000 -0.873256418218254,3.58949070000000 -0.875978884501499,3.58742900000000 -0.878701351769785,3.58529090000000 -0.881423826658424,3.58347750000000 -0.884146298809852,3.58177850000000 -0.886868771867091,3.58011770000000 -0.889591240142391,3.57788420000000 -0.892313713281813,3.57633810000000 -0.895036201752086,3.57378010000000 -0.897758683022040,3.57210020000000 -0.900481161991173,3.57021020000000 -0.903203643476430,3.56849220000000 -0.905926128940627,3.56721330000000 -# extra points to avoid extrapolation -1,3.52302166875714 \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/nmc_LGM50_ocp_Chen2020.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/nmc_LGM50_ocp_Chen2020.py deleted file mode 100644 index 2038c2eb76..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/nmc_LGM50_ocp_Chen2020.py +++ /dev/null @@ -1,35 +0,0 @@ -from pybamm import tanh - - -def nmc_LGM50_ocp_Chen2020(sto): - """ - LG M50 NMC open circuit potential as a function of stochiometry, fit taken - from [1]. - - References - ---------- - .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the - Electrochemical Society 167 (2020): 080534. - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - - Returns - ------- - :class:`pybamm.Symbol` - Open circuit potential - """ - - u_eq = ( - -0.8090 * sto - + 4.4875 - - 0.0428 * tanh(18.5138 * (sto - 0.5542)) - - 17.7326 * tanh(15.7890 * (sto - 0.3117)) - + 17.5842 * tanh(15.9308 * (sto - 0.3120)) - ) - - return u_eq diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/parameters.csv b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/parameters.csv deleted file mode 100644 index 0e5c9a39d2..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/parameters.csv +++ /dev/null @@ -1,50 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrode properties,,, -Positive electrode conductivity [S.m-1],0.18,Chen 2020, -Maximum concentration in positive electrode [mol.m-3],63104,Chen 2020,tuned for 1C -Positive electrode diffusivity [m2.s-1],[function]nmc_LGM50_diffusivity_Chen2020,Chen 2020,tuned for 1C -Positive electrode OCP [V],[function]nmc_LGM50_ocp_Chen2020,Chen 2020, -,,, -# Microstructure,,, -Positive electrode porosity,0.335,Chen 2020, -Positive electrode active material volume fraction,0.665,Chen 2020, -Positive particle radius [m],5.22E-6,Chen 2020, -Positive electrode Bruggeman coefficient (electrolyte),1.5,Chen 2020,theoretical -Positive electrode Bruggeman coefficient (electrode),1.5,default, -,,, -# Interfacial reactions,,, -Positive electrode cation signed stoichiometry,-1,, -Positive electrode electrons in reaction,1,, -Positive electrode charge transfer coefficient,0.5,Chen 2020, -Positive electrode double-layer capacity [F.m-2],0.2,, -Positive electrode exchange-current density [A.m-2],[function]nmc_LGM50_electrolyte_exchange_current_density_Chen2020,, -,,, -# Density,,, -Positive electrode density [kg.m-3],3262,default, -,,, -# Thermal parameters,,, -Positive electrode specific heat capacity [J.kg-1.K-1],700,default, -Positive electrode thermal conductivity [W.m-1.K-1],2.1,default, -Positive electrode OCP entropic change [V.K-1],0,, -,,, -# Mechanical properties,,, -Positive electrode Poisson's ratio,0.2,, -Positive electrode Young's modulus [Pa],375e9,, -Positive electrode reference concentration for free of deformation [mol.m-3],0,, -Positive electrode partial molar volume [m3.mol-1],12.5e-6,, -Positive electrode volume change,[function]volume_change_Ai2020,Ai2020, -,,, -# Crack model,,, -Positive electrode initial crack length [m],20e-9,, -Positive electrode initial crack width [m],15e-9,, -Positive electrode number of cracks per unit area [m-2],3.18e15,, -Positive electrode Paris' law constant b,1.12,, -Positive electrode Paris' law constant m,2.2,, -Positive electrode cracking rate,[function]cracking_rate_Ai2020,Ai2020, -,,, -# Loss of active materials (LAM) model,,, -Positive electrode LAM constant proportional term [s-1],2.7778E-7,0.001/3600, -Positive electrode LAM constant exponential term,2,, -Positive electrode critical stress [Pa],375e6,, \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/volume_change_Ai2020.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/volume_change_Ai2020.py deleted file mode 100644 index 39589ef50b..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/volume_change_Ai2020.py +++ /dev/null @@ -1,30 +0,0 @@ -from pybamm import Parameter - - -def volume_change_Ai2020(sto, c_s_max): - """ - Particle volume change as a function of stochiometry [1, 2]. - - References - ---------- - .. [1] > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). - Electrochemical Thermal-Mechanical Modelling of Stress Inhomogeneity in - Lithium-Ion Pouch Cells. Journal of The Electrochemical Society, 167(1), 013512 - DOI: 10.1149/2.0122001JES. - .. [2] > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). - A new method to model the thickness change of a commercial pouch cell - during discharge. Journal of The Electrochemical Society, 163(8), A1566-A1575. - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry, dimensionless - should be R-averaged particle concentration - Returns - ------- - t_change:class:`pybamm.Symbol` - volume change, dimensionless, normalised by particle volume - """ - omega = Parameter("Positive electrode partial molar volume [m3.mol-1]") - t_change = omega * c_s_max * sto - return t_change diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/README.md b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/README.md deleted file mode 100644 index ba9aa6cdd4..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# NMC 811 positive electrode parameters - -Parameters for an LG M50 NMC positive electrode, from the paper - -> Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) Electrochimica Acta 425 (2022): 140700 - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/__init__.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_diffusivity_ORegan2022.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_diffusivity_ORegan2022.py deleted file mode 100644 index 6ec0ca2fd6..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_diffusivity_ORegan2022.py +++ /dev/null @@ -1,54 +0,0 @@ -from pybamm import exp, constants - - -def nmc_LGM50_diffusivity_ORegan2022(sto, T): - """ - NMC diffusivity as a function of stoichiometry, in this case the - diffusivity is taken to be a constant. The value is taken from [1]. - - References - ---------- - .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma - Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion - cylindrical battery." Electrochimica Acta 425 (2022): 140700 - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Solid diffusivity - """ - - a1 = -0.9231 - a2 = -0.4066 - a3 = -0.993 - b1 = 0.3216 - b2 = 0.4532 - b3 = 0.8098 - c0 = -13.96 - c1 = 0.002534 - c2 = 0.003926 - c3 = 0.09924 - d = 1449 - - D_ref = ( - 10 - ** ( - c0 - + a1 * exp(-((sto - b1) ** 2) / c1) - + a2 * exp(-((sto - b2) ** 2) / c2) - + a3 * exp(-((sto - b3) ** 2) / c3) - ) - * 2.7 # correcting factor (see O'Regan et al 2021) - ) - - E_D_s = d * constants.R - arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T)) - - return D_ref * arrhenius diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_electrolyte_exchange_current_density_ORegan2022.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_electrolyte_exchange_current_density_ORegan2022.py deleted file mode 100644 index 86612c32ae..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_electrolyte_exchange_current_density_ORegan2022.py +++ /dev/null @@ -1,46 +0,0 @@ -from pybamm import exp, constants, Parameter - - -def nmc_LGM50_electrolyte_exchange_current_density_ORegan2022( - c_e, c_s_surf, c_s_max, T -): - """ - Exchange-current density for Butler-Volmer reactions between NMC and LiPF6 in - EC:DMC. - - References - ---------- - .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma - Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion - cylindrical battery." Electrochimica Acta 425 (2022): 140700 - - Parameters - ---------- - c_e : :class:`pybamm.Symbol` - Electrolyte concentration [mol.m-3] - c_s_surf : :class:`pybamm.Symbol` - Particle concentration [mol.m-3] - c_s_max : :class:`pybamm.Symbol` - Maximum particle concentration [mol.m-3] - T : :class:`pybamm.Symbol` - Temperature [K] - - Returns - ------- - :class:`pybamm.Symbol` - Exchange-current density [A.m-2] - """ - i_ref = 5.028 # (A/m2) - alpha = 0.43 - E_r = 2.401e4 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - - c_e_ref = Parameter("Typical electrolyte concentration [mol.m-3]") - - return ( - i_ref - * arrhenius - * (c_e / c_e_ref) ** (1 - alpha) - * (c_s_surf / c_s_max) ** alpha - * (1 - c_s_surf / c_s_max) ** (1 - alpha) - ) diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_electronic_conductivity_ORegan2022.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_electronic_conductivity_ORegan2022.py deleted file mode 100644 index 22115666b7..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_electronic_conductivity_ORegan2022.py +++ /dev/null @@ -1,31 +0,0 @@ -from pybamm import exp, constants - - -def nmc_LGM50_electronic_conductivity_ORegan2022(T): - """ - Positive electrode electronic conductivity as a function of the temperature from - [1]. - - References - ---------- - .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma - Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion - cylindrical battery." Electrochimica Acta 425 (2022): 140700 - - Parameters - ---------- - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Thermal conductivity - """ - - E_r = 3.5e3 - arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - - sigma = 0.8473 * arrhenius - - return sigma diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_entropic_change_ORegan2022.csv b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_entropic_change_ORegan2022.csv deleted file mode 100644 index 804ab7cd90..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_entropic_change_ORegan2022.csv +++ /dev/null @@ -1,19 +0,0 @@ -# Entropic term data for LG M50 NMC positive electrode -# sto,dUdT -# extra point to avoid extrapolation -0.248797280909757,0.0000551 -# experimentally measured data -0.2980,0.0000320 -0.3663,0 -0.4319,0 -0.4975,0 -0.5603,0 -0.6231,0 -0.6914,-0.0000565 -0.7570,-0.0000550 -0.8199,-0.0000620 -0.8772,-0.0000525 -0.9018,-0.0000535 -0.9127,-0.0000302 -# extra points to avoid extrapolation -1,0 \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_entropic_change_ORegan2022.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_entropic_change_ORegan2022.py deleted file mode 100644 index 96e06c0ec0..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_entropic_change_ORegan2022.py +++ /dev/null @@ -1,37 +0,0 @@ -from pybamm import exp - - -def nmc_LGM50_entropic_change_ORegan2022(sto, c_s_max): - """ - LG M50 NMC 811 entropic change in open circuit potential (OCP) at a temperature of - 298.15K as a function of the stochiometry. The fit is taken from [1]. - - References - ---------- - .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma - Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion - cylindrical battery." Electrochimica Acta 425 (2022): 140700 - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - - Returns - ------- - :class:`pybamm.Symbol` - Entropic change [V.K-1] - """ - a1 = 0.04006 - a2 = -0.06656 - b1 = 0.2828 - b2 = 0.8032 - c1 = 0.0009855 - c2 = 0.02179 - - dUdT = ( - a1 * exp(-((sto - b1) ** 2) / c1) + a2 * exp(-((sto - b2) ** 2) / c2) - ) / 1000 - # fit in mV / K - - return dUdT diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_heat_capacity_ORegan2022.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_heat_capacity_ORegan2022.py deleted file mode 100644 index bbb5b87625..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_heat_capacity_ORegan2022.py +++ /dev/null @@ -1,43 +0,0 @@ -from pybamm import Parameter - - -def nmc_LGM50_heat_capacity_ORegan2022(T): - """ - Wet positive electrode specific heat capacity as a function of the temperature from - [1]. - - References - ---------- - .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma - Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion - cylindrical battery." Electrochimica Acta 425 (2022): 140700 - - Parameters - ---------- - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Specific heat capacity - """ - - # value for the dry porous electrode (i.e. electrode + air, and we neglect the air - # contribution to density) - cp_dry = -8.414e-4 * T**3 + 0.7892 * T**2 - 241.3 * T + 2.508e4 - rho_dry = 3270 - theta_dry = rho_dry * cp_dry - - # value for the bulk electrolyte - rho_e = 1280 - cp_e = 229 - eps_e = Parameter("Positive electrode porosity") - theta_e = rho_e * cp_e - - # value for the wet separator - theta_wet = theta_dry + theta_e * eps_e - rho_wet = rho_dry + rho_e * eps_e - cp_wet = theta_wet / rho_wet - - return cp_wet diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_ocp_Chen2020.csv b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_ocp_Chen2020.csv deleted file mode 100644 index 7dc9adc71c..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_ocp_Chen2020.csv +++ /dev/null @@ -1,243 +0,0 @@ -# OCP data for LG M50 NMC positive electrode -# sto,ocp -# extra point to avoid extrapolation -0.248797280909757,4.40 -# experimentally measured data -0.266145163492257,4.29356530000000 -0.268867632314474,4.27686210000000 -0.271590113475307,4.26470180000000 -0.274312581168247,4.25403120000000 -0.277035051828500,4.24494460000000 -0.279757525339878,4.23648790000000 -0.282479995064952,4.23026470000000 -0.285202473437965,4.22255280000000 -0.287924947671149,4.21825740000000 -0.290647431425727,4.21329400000000 -0.293369917257952,4.20903730000000 -0.296092386692851,4.20512390000000 -0.298814868849636,4.20126770000000 -0.301537350055390,4.19815640000000 -0.304259830904681,4.19552180000000 -0.306982312259254,4.19311670000000 -0.309704783671781,4.18897440000000 -0.312427252746966,4.18815330000000 -0.315149732455743,4.18658830000000 -0.317872201316148,4.18502280000000 -0.320594658973297,4.18322850000000 -0.323317140454362,4.18088050000000 -0.326039617362371,4.18057490000000 -0.328762086363981,4.17895220000000 -0.331484555867675,4.17681460000000 -0.334207025471543,4.17681460000000 -0.336929501255821,4.17528720000000 -0.339651973273663,4.17311100000000 -0.342374462458239,4.17267180000000 -0.345096938615155,4.17108770000000 -0.347819410074246,4.17022850000000 -0.350541895855318,4.16879700000000 -0.353264376316384,4.16698310000000 -0.355986846136589,4.16551350000000 -0.358709322969457,4.16345170000000 -0.361431798807600,4.15982480000000 -0.364154276288401,4.15717120000000 -0.366876742342325,4.15407900000000 -0.369599211442129,4.15041350000000 -0.372321688828519,4.14665320000000 -0.375044179100704,4.14233880000000 -0.377766654413886,4.13823460000000 -0.380489134491185,4.13382480000000 -0.383211609132993,4.13057990000000 -0.385934081264202,4.12723920000000 -0.388656550366338,4.12281040000000 -0.391379033718590,4.11861090000000 -0.394101506024207,4.11418200000000 -0.396823981011550,4.10960050000000 -0.399546445031954,4.10469480000000 -0.402268917913251,4.10047580000000 -0.404991398895142,4.09564640000000 -0.407713868869987,4.09096960000000 -0.410436337723266,4.08646440000000 -0.413158819617673,4.08184480000000 -0.415881292009550,4.07768300000000 -0.418603765047837,4.07333090000000 -0.421326243264316,4.06907370000000 -0.424048721985195,4.06472160000000 -0.426771203785911,4.06086540000000 -0.429493683560302,4.05647470000000 -0.432216157859838,4.05275250000000 -0.434938637930869,4.04924010000000 -0.437661112840513,4.04502110000000 -0.440383593375701,4.04198600000000 -0.443106070903017,4.03847360000000 -0.445828558295681,4.03517100000000 -0.448551031796266,4.03204060000000 -0.451273507249511,4.02892880000000 -0.453996003855954,4.02597000000000 -0.456718484235626,4.02274370000000 -0.459440954945593,4.01997570000000 -0.462163428115050,4.01751330000000 -0.464885915164505,4.01497460000000 -0.467608383790858,4.01220660000000 -0.470330853087581,4.00995400000000 -0.473053327146540,4.00756790000000 -0.475775805779291,4.00506690000000 -0.478498280251222,4.00231840000000 -0.481220742406741,3.99955010000000 -0.483943214533784,3.99693490000000 -0.486665690272151,3.99265890000000 -0.489388163807013,3.98895550000000 -0.492110637403290,3.98340030000000 -0.494833100364319,3.97830370000000 -0.497555571325341,3.97559290000000 -0.500278043298208,3.97076320000000 -0.503000516078447,3.96810980000000 -0.505722984627149,3.96356650000000 -0.508445451410474,3.95944330000000 -0.511167916160712,3.95566340000000 -0.513890383743419,3.95215110000000 -0.516612844491088,3.94791320000000 -0.519335313666282,3.94382810000000 -0.522057772177089,3.94008660000000 -0.524780244833149,3.93623040000000 -0.527502711490113,3.93142010000000 -0.530225181904053,3.92838480000000 -0.532947653094719,3.92422320000000 -0.535670116160643,3.91920280000000 -0.538392582186640,3.91662570000000 -0.541115055303321,3.91179610000000 -0.543837527290114,3.90815000000000 -0.546559999225906,3.90387390000000 -0.549282473099007,3.89955970000000 -0.552004938974192,3.89591360000000 -0.554727397110192,3.89093140000000 -0.557449855597342,3.88726620000000 -0.560172327720750,3.88310480000000 -0.562894802037505,3.87934420000000 -0.565617285773971,3.87476280000000 -0.568339758495162,3.87025760000000 -0.571062218638907,3.86668780000000 -0.573784688274245,3.86239270000000 -0.576507157299816,3.85817410000000 -0.579229628899775,3.85414600000000 -0.581952099068137,3.84998460000000 -0.584674561619127,3.84500220000000 -0.587397020754022,3.84225340000000 -0.590119479693579,3.83809190000000 -0.592841939924731,3.83415960000000 -0.595564403547528,3.83093330000000 -0.598286868612232,3.82721090000000 -0.601009347425258,3.82316400000000 -0.603731818208659,3.81923150000000 -0.606454292118578,3.81598640000000 -0.609176768553542,3.81230210000000 -0.611899246291593,3.80903790000000 -0.614621716230771,3.80716710000000 -0.617344187685711,3.80405550000000 -0.620066659099430,3.80136390000000 -0.622789138734988,3.79708790000000 -0.625511617433531,3.79533170000000 -0.628234084250521,3.79206730000000 -0.630956557807740,3.78838300000000 -0.633679025844496,3.78553890000000 -0.636401495064267,3.78382060000000 -0.639123970191964,3.78111000000000 -0.641846449308652,3.77948740000000 -0.644568927771322,3.77692940000000 -0.647291404914478,3.77360800000000 -0.650013889129768,3.76959920000000 -0.652736367967840,3.76902650000000 -0.655458839536009,3.76627760000000 -0.658181310438348,3.76429220000000 -0.660903786306585,3.76268890000000 -0.663626254736975,3.76037910000000 -0.666348738333431,3.75755380000000 -0.669071213782409,3.75520560000000 -0.671793687532754,3.75331590000000 -0.674516164245807,3.75071980000000 -0.677238646529723,3.74875350000000 -0.679961125087374,3.74714990000000 -0.682683607484084,3.74428650000000 -0.685406075721887,3.74230120000000 -0.688128545911254,3.74006770000000 -0.690851028189204,3.73857880000000 -0.693573498264774,3.73453190000000 -0.696295966701841,3.73392110000000 -0.699018434718856,3.73016050000000 -0.701740901054719,3.73010330000000 -0.704463378887980,3.72783160000000 -0.707185849109592,3.72515890000000 -0.709908327081682,3.72386100000000 -0.712630805246016,3.72157030000000 -0.715353278555653,3.71912670000000 -0.718075742809693,3.71727510000000 -0.720798219830455,3.71570970000000 -0.723520694189328,3.71309450000000 -0.726243165189205,3.70994470000000 -0.728965639893390,3.70710040000000 -0.731688103753489,3.70456150000000 -0.734410565090537,3.70358800000000 -0.737133034756847,3.70208000000000 -0.739855506564427,3.70026640000000 -0.742577987473750,3.69721220000000 -0.745300467667417,3.69528410000000 -0.748022934626483,3.69293620000000 -0.750745403364983,3.68980550000000 -0.753467872385266,3.68909910000000 -0.756190338725858,3.68652200000000 -0.758912814805470,3.68497590000000 -0.761635286778263,3.68216970000000 -0.764357761597942,3.68081430000000 -0.767080238030274,3.67865730000000 -0.769802703134331,3.67619470000000 -0.772525170787922,3.67476300000000 -0.775247647398611,3.67128870000000 -0.777970116013000,3.66972330000000 -0.780692583791189,3.66789080000000 -0.783415062024859,3.66525650000000 -0.786137529881339,3.66306110000000 -0.788859991839412,3.66027400000000 -0.791582456579698,3.65836520000000 -0.794304940665857,3.65548280000000 -0.797027408651066,3.65229490000000 -0.799749868022516,3.64998480000000 -0.802472336866029,3.64704510000000 -0.805194798213859,3.64055470000000 -0.807917271231816,3.63834050000000 -0.810639738427300,3.63507600000000 -0.813362206944959,3.63354900000000 -0.816084680519184,3.63223170000000 -0.818807143264440,3.63068560000000 -0.821529609046551,3.62839480000000 -0.824252075066457,3.62684870000000 -0.826974531979797,3.62430980000000 -0.829696999423772,3.62236260000000 -0.832419462686953,3.61936550000000 -0.835141923021117,3.61776210000000 -0.837864385539901,3.61585310000000 -0.840586843407759,3.61283710000000 -0.843309308653791,3.61180620000000 -0.846031768598797,3.60945820000000 -0.848754235411593,3.60724380000000 -0.851476699467683,3.60499120000000 -0.854199161102801,3.60308220000000 -0.856921623426447,3.60126880000000 -0.859644087674256,3.59958890000000 -0.862366559650803,3.59764170000000 -0.865089024293406,3.59519840000000 -0.867811486910360,3.59384300000000 -0.870533951869352,3.59162860000000 -0.873256418218254,3.58949070000000 -0.875978884501499,3.58742900000000 -0.878701351769785,3.58529090000000 -0.881423826658424,3.58347750000000 -0.884146298809852,3.58177850000000 -0.886868771867091,3.58011770000000 -0.889591240142391,3.57788420000000 -0.892313713281813,3.57633810000000 -0.895036201752086,3.57378010000000 -0.897758683022040,3.57210020000000 -0.900481161991173,3.57021020000000 -0.903203643476430,3.56849220000000 -0.905926128940627,3.56721330000000 -# extra points to avoid extrapolation -1,3.52302166875714 \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_ocp_Chen2020.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_ocp_Chen2020.py deleted file mode 100644 index ec5318591a..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_ocp_Chen2020.py +++ /dev/null @@ -1,35 +0,0 @@ -from pybamm import tanh - - -def nmc_LGM50_ocp_Chen2020(sto): - """ - LG M50 NMC open-circuit potential as a function of stoichiometry. The fit is - taken from [1]. - - References - ---------- - .. [1] Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. "Development of Experimental Techniques for - Parameterization of Multi-scale Lithium-ion Battery Models." Journal of the - Electrochemical Society 167 (2020): 080534. - - Parameters - ---------- - sto: :class:`pybamm.Symbol` - Electrode stochiometry - - Returns - ------- - :class:`pybamm.Symbol` - Open-circuit potential - """ - - U = ( - -0.809 * sto - + 4.4875 - - 0.0428 * tanh(18.5138 * (sto - 0.5542)) - - 17.7326 * tanh(15.789 * (sto - 0.3117)) - + 17.5842 * tanh(15.9308 * (sto - 0.312)) - ) - - return U diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_thermal_conductivity_ORegan2022.py b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_thermal_conductivity_ORegan2022.py deleted file mode 100644 index 747b50a289..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/nmc_LGM50_thermal_conductivity_ORegan2022.py +++ /dev/null @@ -1,25 +0,0 @@ -def nmc_LGM50_thermal_conductivity_ORegan2022(T): - """ - Wet positive electrode thermal conductivity as a function of the temperature from - [1]. - - References - ---------- - .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma - Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion - cylindrical battery." Electrochimica Acta 425 (2022): 140700 - - Parameters - ---------- - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Thermal conductivity - """ - - lambda_wet = 2.063e-5 * T**2 - 0.01127 * T + 2.331 - - return lambda_wet diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/parameters.csv b/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/parameters.csv deleted file mode 100644 index 977c044d58..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/parameters.csv +++ /dev/null @@ -1,31 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# Electrode properties,,, -Positive electrode conductivity [S.m-1],[function]nmc_LGM50_electronic_conductivity_ORegan2022,O'Regan 2022, -Maximum concentration in positive electrode [mol.m-3],51765,Chen 2020, -Positive electrode diffusivity [m2.s-1],[function]nmc_LGM50_diffusivity_ORegan2022,O'Regan 2022, -Positive electrode OCP [V],[function]nmc_LGM50_ocp_Chen2020,Chen 2020, -,,, -# Microstructure,,, -Positive electrode porosity,0.335,Chen 2020, -Positive electrode active material volume fraction,0.665,Chen 2020, -Positive particle radius [m],5.22E-6,Chen 2020, -Positive electrode Bruggeman coefficient (electrolyte),1.5,Chen 2020,theoretical -Positive electrode Bruggeman coefficient (electrode),0,conductivity already accounts for porous electrode, -,,, -# Interfacial reactions,,, -Positive electrode cation signed stoichiometry,-1,, -Positive electrode electrons in reaction,1,, -Reference OCP vs SHE in the positive electrode [V],,, -Positive electrode charge transfer coefficient,0.5,Chen 2020, -Positive electrode double-layer capacity [F.m-2],0.2,, -Positive electrode exchange-current density [A.m-2],[function]nmc_LGM50_electrolyte_exchange_current_density_ORegan2022,O'Regan 2022, -,,, -# Density,,, -Positive electrode density [kg.m-3],3699,O'Regan 2022,wet electrode -,,, -# Thermal parameters,,, -Positive electrode specific heat capacity [J.kg-1.K-1],[function]nmc_LGM50_heat_capacity_ORegan2022,O'Regan 2022,wet electrode -Positive electrode thermal conductivity [W.m-1.K-1],[function]nmc_LGM50_thermal_conductivity_ORegan2022,O'Regan 2022,wet electrode -Positive electrode OCP entropic change [V.K-1],[function]nmc_LGM50_entropic_change_ORegan2022,, \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/seis/OKane2022/README.md b/pybamm/input/parameters/lithium_ion/seis/OKane2022/README.md deleted file mode 100644 index 8ea18c45d7..0000000000 --- a/pybamm/input/parameters/lithium_ion/seis/OKane2022/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# SEI parameters - -Parameters for SEI growth from the paper - -> Simon O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, Robert Timms, Valentin Sulzer, Jacqueline Edge, Billy Wu, Gregory Offer, and Monica Marinescu. ["Lithium-ion battery degradation: how to model it."](https://pubs.rsc.org/en/content/articlelanding/2022/cp/d2cp00417h) Physical Chemistry: Chemical Physics 24 (2022): 7909-7922 - -and references therein. - -Note: this parameter set does not claim to be representative of the true parameter values. These are merely the parameter values that were used in the referenced papers. diff --git a/pybamm/input/parameters/lithium_ion/seis/OKane2022/parameters.csv b/pybamm/input/parameters/lithium_ion/seis/OKane2022/parameters.csv deleted file mode 100644 index 60bce38d96..0000000000 --- a/pybamm/input/parameters/lithium_ion/seis/OKane2022/parameters.csv +++ /dev/null @@ -1,28 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# SEI properties,,, -Ratio of lithium moles to SEI moles,1,,Legacy value to reproduce a bug -Inner SEI reaction proportion,0,, -Inner SEI partial molar volume [m3.mol-1],9.585e-5, Safari paper, -Outer SEI partial molar volume [m3.mol-1],9.585e-5, Safari paper, -SEI reaction exchange current density [A.m-2],1.5E-7, Guess, -SEI resistivity [Ohm.m],2e5, Safari paper, -Outer SEI solvent diffusivity [m2.s-1],2.5E-22, Single paper, -Bulk solvent concentration [mol.m-3],2.636E3, Ploehn paper, -Inner SEI open-circuit potential [V],0.1,, -Outer SEI open-circuit potential [V],0.8,, -Inner SEI electron conductivity [S.m-1],8.95E-14, Single paper, -Inner SEI lithium interstitial diffusivity [m2.s-1],1E-20, Guess, -Lithium interstitial reference concentration [mol.m-3],15, Single paper, -Initial inner SEI thickness [m], 0, 1/2 of initial thickness in Safari paper, -Initial outer SEI thickness [m], 5E-9, 1/2 of initial thickness in Safari paper, -EC initial concentration in electrolyte [mol.m-3], 4.541E3, Safari paper, -EC diffusivity [m2.s-1], 2E-18, adjusted parameter in Yang paper, -SEI kinetic rate constant [m.s-1], 1e-12, adjusted parameter in Yang paper, -SEI open-circuit potential [V], 0.4, Safari paper, -SEI growth activation energy [J.mol-1], 38000, Waldmann paper, -,,, -# Reaction-driven LAM example,,, -Negative electrode reaction-driven LAM factor [m3.mol-1],0,, -Positive electrode reaction-driven LAM factor [m3.mol-1],0,, diff --git a/pybamm/input/parameters/lithium_ion/seis/__init__.py b/pybamm/input/parameters/lithium_ion/seis/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/seis/example/README.md b/pybamm/input/parameters/lithium_ion/seis/example/README.md deleted file mode 100644 index 4330a3d572..0000000000 --- a/pybamm/input/parameters/lithium_ion/seis/example/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# SEI parameters - -Some example parameters for SEI growth from the papers: - -> Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the Electrochemical Society, 151(2), A196-A203. -> Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), A456-A462. -> Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), 1950-1955. -> Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics-Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The Electrochemical Society, 156(3), -> Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium plating induced aging of lithium-ion batteries: Transition from linear to nonlinear aging. Journal of Power Sources, 360, 28-40. - -Note: this parameter set does not claim to be representative of the true parameter values. Instead these are parameter values that were used to fit SEI models to observed experimental data in the referenced papers. diff --git a/pybamm/input/parameters/lithium_ion/seis/example/parameters.csv b/pybamm/input/parameters/lithium_ion/seis/example/parameters.csv deleted file mode 100644 index 4608e3d6d8..0000000000 --- a/pybamm/input/parameters/lithium_ion/seis/example/parameters.csv +++ /dev/null @@ -1,28 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# SEI properties,,, -Ratio of lithium moles to SEI moles,2,,Assume SEI made of LEDC and/or Li2CO3 -Inner SEI reaction proportion,0.5,, -Inner SEI partial molar volume [m3.mol-1],9.585e-5, Safari paper, -Outer SEI partial molar volume [m3.mol-1],9.585e-5, Safari paper, -SEI reaction exchange current density [A.m-2],1.5E-7, Guess, -SEI resistivity [Ohm.m],2e5, Safari paper, -Outer SEI solvent diffusivity [m2.s-1],2.5E-22, Single paper, -Bulk solvent concentration [mol.m-3],2.636E3, Ploehn paper, -Inner SEI open-circuit potential [V],0.1,, -Outer SEI open-circuit potential [V],0.8,, -Inner SEI electron conductivity [S.m-1],8.95E-14, Single paper, -Inner SEI lithium interstitial diffusivity [m2.s-1],1E-20, Guess, -Lithium interstitial reference concentration [mol.m-3],15, Single paper, -Initial inner SEI thickness [m], 2.5E-9, 2.5E-9 1/2 of initial thickness in Safari paper, -Initial outer SEI thickness [m], 2.5E-9, 1/2 of initial thickness in Safari paper, -EC initial concentration in electrolyte [mol.m-3], 4.541E3, Safari paper, -EC diffusivity [m2.s-1], 2E-18, adjusted parameter in Yang paper, -SEI kinetic rate constant [m.s-1], 1e-12, adjusted parameter in Yang paper, -SEI open-circuit potential [V], 0.4, Safari paper, -SEI growth activation energy [J.mol-1], 0,, -,,, -# Reaction-driven LAM example,,, -Negative electrode reaction-driven LAM factor [m3.mol-1],0,, -Positive electrode reaction-driven LAM factor [m3.mol-1],0,, diff --git a/pybamm/input/parameters/lithium_ion/seis/example_composite/README.md b/pybamm/input/parameters/lithium_ion/seis/example_composite/README.md deleted file mode 100644 index f98642e325..0000000000 --- a/pybamm/input/parameters/lithium_ion/seis/example_composite/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# SEI parameters - -Example parameters for composite SEI on silicon/graphite. Both phases use the same values, from the paper - -> Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium plating induced aging of lithium-ion batteries: Transition from linear to nonlinear aging. Journal of Power Sources, 360, 28-40. diff --git a/pybamm/input/parameters/lithium_ion/seis/example_composite/parameters.csv b/pybamm/input/parameters/lithium_ion/seis/example_composite/parameters.csv deleted file mode 100644 index dfe02277dc..0000000000 --- a/pybamm/input/parameters/lithium_ion/seis/example_composite/parameters.csv +++ /dev/null @@ -1,28 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# SEI properties,,, -Primary: Ratio of lithium moles to SEI moles,2,,Assume SEI made of LEDC and/or Li2CO3 -Primary: Inner SEI partial molar volume [m3.mol-1],9.585e-5, Safari paper, -Primary: Outer SEI partial molar volume [m3.mol-1],9.585e-5, Safari paper, -Primary: SEI resistivity [Ohm.m],2e5, Safari paper, -Primary: Initial inner SEI thickness [m], 2.5E-9, 2.5E-9 1/2 of initial thickness in Safari paper, -Primary: Initial outer SEI thickness [m], 2.5E-9, 1/2 of initial thickness in Safari paper, -Primary: EC initial concentration in electrolyte [mol.m-3], 4.541E3, Safari paper, -Primary: EC diffusivity [m2.s-1], 2E-18, adjusted parameter in Yang paper, -Primary: SEI kinetic rate constant [m.s-1], 1e-12, adjusted parameter in Yang paper, -Primary: SEI open-circuit potential [V], 0.4, Safari paper, -Primary: SEI growth activation energy [J.mol-1], 0,, -,,, -Secondary: Ratio of lithium moles to SEI moles,2,,Assume SEI made of LEDC and/or Li2CO3 -Secondary: Inner SEI partial molar volume [m3.mol-1],9.585e-5, Safari paper, -Secondary: Outer SEI partial molar volume [m3.mol-1],9.585e-5, Safari paper, -Secondary: SEI resistivity [Ohm.m],2e5, Safari paper, -Secondary: Initial inner SEI thickness [m], 2.5E-9, 2.5E-9 1/2 of initial thickness in Safari paper, -Secondary: Initial outer SEI thickness [m], 2.5E-9, 1/2 of initial thickness in Safari paper, -Secondary: EC initial concentration in electrolyte [mol.m-3], 4.541E3, Safari paper, -Secondary: EC diffusivity [m2.s-1], 2E-18, adjusted parameter in Yang paper, -Secondary: SEI kinetic rate constant [m.s-1], 1e-12, adjusted parameter in Yang paper, -Secondary: SEI open-circuit potential [V], 0.4, Safari paper, -Secondary: SEI growth activation energy [J.mol-1], 0,, -,,, \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/seis/ramadass2004/README.md b/pybamm/input/parameters/lithium_ion/seis/ramadass2004/README.md deleted file mode 100644 index 54f1505db9..0000000000 --- a/pybamm/input/parameters/lithium_ion/seis/ramadass2004/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# SEI parameters - -Some example parameters for SEI growth from the papers: - -> Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the Electrochemical Society, 151(2), A196-A203. -> Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics-Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The Electrochemical Society, 156(3), - -Note: Ramadass 2004 has mistakes in units and values of SEI parameters, corrected by Safari 2009. diff --git a/pybamm/input/parameters/lithium_ion/seis/ramadass2004/parameters.csv b/pybamm/input/parameters/lithium_ion/seis/ramadass2004/parameters.csv deleted file mode 100644 index 18fdf18456..0000000000 --- a/pybamm/input/parameters/lithium_ion/seis/ramadass2004/parameters.csv +++ /dev/null @@ -1,24 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# SEI properties,,, -Ratio of lithium moles to SEI moles,2,,Assume SEI made of LEDC and/or Li2CO3 -Inner SEI reaction proportion,0.5,, -Inner SEI partial molar volume [m3.mol-1],9.585e-5, Safari 2009, -Outer SEI partial molar volume [m3.mol-1],9.585e-5, Safari 2009, -SEI reaction exchange current density [A.m-2],1.5e-6, Ramadass 2004, -SEI resistivity [Ohm.m],2e5, Safari 2009, -Outer SEI solvent diffusivity [m2.s-1],2.5E-22, Single paper, -Bulk solvent concentration [mol.m-3],2.636E3, Ploehn paper, -Inner SEI open-circuit potential [V],0.1,, -Outer SEI open-circuit potential [V],0.8,, -Inner SEI electron conductivity [S.m-1],8.95E-14, Single paper, -Inner SEI lithium interstitial diffusivity [m2.s-1],1E-20, Guess, -Lithium interstitial reference concentration [mol.m-3],15, Single paper, -Initial inner SEI thickness [m], 2.5E-9, 2.5E-9 1/2 of initial thickness in Safari paper, -Initial outer SEI thickness [m], 2.5E-9, 1/2 of initial thickness in Safari paper, -EC initial concentration in electrolyte [mol.m-3], 4.541e3, Safari paper, -EC diffusivity [m2.s-1], 2e-18, adjusted parameter in Yang paper, -SEI kinetic rate constant [m.s-1], 1e-12, adjusted parameter in Yang paper, -SEI open-circuit potential [V], 0, Estimated, -SEI growth activation energy [J.mol-1], 0,, diff --git a/pybamm/input/parameters/lithium_ion/seis/yang2017_sei/README.md b/pybamm/input/parameters/lithium_ion/seis/yang2017_sei/README.md deleted file mode 100644 index 8a82e0e5bc..0000000000 --- a/pybamm/input/parameters/lithium_ion/seis/yang2017_sei/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# SEI parameters - -Some example parameters for SEI growth from the paper: - -> Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium plating induced aging of lithium-ion batteries: Transition from linear to nonlinear aging. Journal of Power Sources, 360, 28-40. - -and references therein diff --git a/pybamm/input/parameters/lithium_ion/seis/yang2017_sei/parameters.csv b/pybamm/input/parameters/lithium_ion/seis/yang2017_sei/parameters.csv deleted file mode 100644 index c6bf6a56d1..0000000000 --- a/pybamm/input/parameters/lithium_ion/seis/yang2017_sei/parameters.csv +++ /dev/null @@ -1,15 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -# SEI properties,,, -Ratio of lithium moles to SEI moles,2,,Assume SEI made of LEDC -Inner SEI partial molar volume [m3.mol-1],9.586E-05, Safari paper, 0.162/1690 -Outer SEI partial molar volume [m3.mol-1],9.586E-05, Safari paper, 0.162/1690 -SEI resistivity [Ohm.m],2e5, Safari paper (1/5e-6), -Initial inner SEI thickness [m],0,, -Initial outer SEI thickness [m],5E-09,, -EC initial concentration in electrolyte [mol.m-3],4.541E+03, Safari paper, -EC diffusivity [m2.s-1],2.00E-18, adjusted parameter in Yang paper, -SEI kinetic rate constant [m.s-1],1.00E-12, adjusted parameter in Yang paper, -SEI open-circuit potential [V],0.4, Safari paper, -SEI growth activation energy [J.mol-1], 0,, diff --git a/pybamm/input/parameters/lithium_ion/separators/separator_Chen2020/README.md b/pybamm/input/parameters/lithium_ion/separators/separator_Chen2020/README.md deleted file mode 100644 index b9ed188b91..0000000000 --- a/pybamm/input/parameters/lithium_ion/separators/separator_Chen2020/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Separator parameters - -Parameters for an LG M50 separator, from the paper - -> Chang-Hui Chen, Ferran Brosa Planella, Kieran O’Regan, Dominika Gastol, W. Dhammika Widanage, and Emma Kendrick. ["Development of Experimental Techniques for Parameterization of Multi-scale Lithium-ion Battery Models."](https://iopscience.iop.org/article/10.1149/1945-7111/ab9050) Journal of the Electrochemical Society 167 (2020): 080534 - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/separators/separator_Chen2020/parameters.csv b/pybamm/input/parameters/lithium_ion/separators/separator_Chen2020/parameters.csv deleted file mode 100644 index b6a89ab472..0000000000 --- a/pybamm/input/parameters/lithium_ion/separators/separator_Chen2020/parameters.csv +++ /dev/null @@ -1,8 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -Separator porosity,0.47,Chen 2020, -Separator Bruggeman coefficient (electrolyte),1.5,Chen 2020,theoretical -Separator density [kg.m-3],397,default, -Separator specific heat capacity [J.kg-1.K-1],700,default, -Separator thermal conductivity [W.m-1.K-1],0.16,default, \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/separators/separator_Ecker2015/README.md b/pybamm/input/parameters/lithium_ion/separators/separator_Ecker2015/README.md deleted file mode 100644 index 861f192486..0000000000 --- a/pybamm/input/parameters/lithium_ion/separators/separator_Ecker2015/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Separator parameters - -Parameters for the separator from the papers - -> Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a lithium-ion battery i. determination of parameters." Journal of the Electrochemical Society 162.9 (2015): A1836-A1848. - -> Ecker, Madeleine, et al. "Parameterization of a physico-chemical model of a lithium-ion battery II. Model validation." Journal of The Electrochemical Society 162.9 (2015): A1849-A1857. - -The thermal material properties are for a 5 Ah power pouch cell by Kokam. The data are extracted from - -> Zhao, Y., et al. "Modeling the effects of thermal gradients induced by tab and surface cooling on lithium ion cell performance."" Journal of The Electrochemical Society, 165.13 (2018): A3169-A3178. diff --git a/pybamm/input/parameters/lithium_ion/separators/separator_Ecker2015/parameters.csv b/pybamm/input/parameters/lithium_ion/separators/separator_Ecker2015/parameters.csv deleted file mode 100644 index a453a81a81..0000000000 --- a/pybamm/input/parameters/lithium_ion/separators/separator_Ecker2015/parameters.csv +++ /dev/null @@ -1,8 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -Separator porosity,0.508,, -Separator Bruggeman coefficient (electrolyte),1.9804586773134942, Solve for permeability factor B=0.304=eps^b, -Separator density [kg.m-3],1017,Zhao et al. (2018), -Separator specific heat capacity [J.kg-1.K-1],1978,Zhao et al. (2018), -Separator thermal conductivity [W.m-1.K-1],0.34,Zhao et al. (2018), diff --git a/pybamm/input/parameters/lithium_ion/separators/separator_Kim2011/README.md b/pybamm/input/parameters/lithium_ion/separators/separator_Kim2011/README.md deleted file mode 100644 index 502f9b47f5..0000000000 --- a/pybamm/input/parameters/lithium_ion/separators/separator_Kim2011/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Separator parameters - -Parameters for the separator in the paper - -> Kim, G. H., Smith, K., Lee, K. J., Santhanagopalan, S., & Pesaran, A. (2011). Multi-domain modeling of lithium-ion batteries encompassing multi-physics in varied length scales. Journal of The Electrochemical Society, 158(8), A955-A969. - -and references therein. - -Note, only an effective cell volumetric heat capacity is provided in the paper. We therefore used the values for the density and specific heat capacity reported in the Marquis2019 parameter set in each region and multiplied each density by the ratio of the volumetric heat capacity provided in smith to the calculated value. This ensures that the values produce the same effective cell volumetric heat capacity. This works fine for thermal models that are averaged over the x-direction but not for full (PDE in x direction) thermal models. We do the same for the planar effective thermal conductivity. diff --git a/pybamm/input/parameters/lithium_ion/separators/separator_Kim2011/parameters.csv b/pybamm/input/parameters/lithium_ion/separators/separator_Kim2011/parameters.csv deleted file mode 100644 index 63048d1881..0000000000 --- a/pybamm/input/parameters/lithium_ion/separators/separator_Kim2011/parameters.csv +++ /dev/null @@ -1,8 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -Separator porosity,0.4,, -Separator Bruggeman coefficient (electrolyte),2,, -Separator density [kg.m-3],511.86798,397 * 1.28934, -Separator specific heat capacity [J.kg-1.K-1],700,, -Separator thermal conductivity [W.m-1.K-1],0.10672, 0.16 * 0.667, diff --git a/pybamm/input/parameters/lithium_ion/separators/separator_Marquis2019/README.md b/pybamm/input/parameters/lithium_ion/separators/separator_Marquis2019/README.md deleted file mode 100644 index 95556a2cca..0000000000 --- a/pybamm/input/parameters/lithium_ion/separators/separator_Marquis2019/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Separator parameters - -Parameters for the separator in the paper - -> Marquis, S. G., Sulzer, V., Timms, R., Please, C. P., & Chapman, S. J. (2019). “An asymptotic derivation of a single particle model with electrolyte”. [Journal of The Electrochemical Society](https://doi.org/10.1149/2.0341915jes), 166(15), A3693-A3706. - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/separators/separator_Marquis2019/parameters.csv b/pybamm/input/parameters/lithium_ion/separators/separator_Marquis2019/parameters.csv deleted file mode 100644 index 28764ce8ed..0000000000 --- a/pybamm/input/parameters/lithium_ion/separators/separator_Marquis2019/parameters.csv +++ /dev/null @@ -1,8 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -Separator porosity,1,, -Separator Bruggeman coefficient (electrolyte),1.5,, -Separator density [kg.m-3],397,, -Separator specific heat capacity [J.kg-1.K-1],700,, -Separator thermal conductivity [W.m-1.K-1],0.16,, diff --git a/pybamm/input/parameters/lithium_ion/separators/separator_Mohtat2020/parameters.csv b/pybamm/input/parameters/lithium_ion/separators/separator_Mohtat2020/parameters.csv deleted file mode 100644 index 8310a90d23..0000000000 --- a/pybamm/input/parameters/lithium_ion/separators/separator_Mohtat2020/parameters.csv +++ /dev/null @@ -1,9 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -Separator porosity,0.4,Peyman MPM, -Separator Bruggeman coefficient (electrolyte),1.5,Peyman MPM, -Separator density [kg.m-3],397,,no info from Peyman MPM -Separator specific heat capacity [J.kg-1.K-1],700,,no info from Peyman MPM -Separator thermal conductivity [W.m-1.K-1],0.16,,no info from Peyman MPM -Separator transport efficiency , 0.25, diff --git a/pybamm/input/parameters/lithium_ion/separators/separator_ORegan2022/README.md b/pybamm/input/parameters/lithium_ion/separators/separator_ORegan2022/README.md deleted file mode 100644 index 186c8c5cf6..0000000000 --- a/pybamm/input/parameters/lithium_ion/separators/separator_ORegan2022/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Separator parameters - -Parameters for an LG M50 separator, from the paper - -> Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. ["Thermal-electrochemical parameters of a high energy lithium-ion cylindrical battery."](https://www.sciencedirect.com/science/article/pii/S0013468622008593) Electrochimica Acta 425 (2022): 140700 - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/separators/separator_ORegan2022/__init__.py b/pybamm/input/parameters/lithium_ion/separators/separator_ORegan2022/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/pybamm/input/parameters/lithium_ion/separators/separator_ORegan2022/parameters.csv b/pybamm/input/parameters/lithium_ion/separators/separator_ORegan2022/parameters.csv deleted file mode 100644 index 729b6a3a55..0000000000 --- a/pybamm/input/parameters/lithium_ion/separators/separator_ORegan2022/parameters.csv +++ /dev/null @@ -1,9 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -Separator porosity,0.47,Chen 2020, -Separator Bruggeman coefficient (electrolyte),1.5,Chen 2020,theoretical -Separator Bruggeman coefficient (electrode),1.5,default, -Separator density [kg.m-3],1548,O'Regan 2022, -Separator specific heat capacity [J.kg-1.K-1],[function]separator_LGM50_heat_capacity_ORegan2022,O'Regan 2022, -Separator thermal conductivity [W.m-1.K-1],0.3344,O'Regan 2022, \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/separators/separator_ORegan2022/separator_LGM50_heat_capacity_ORegan2022.py b/pybamm/input/parameters/lithium_ion/separators/separator_ORegan2022/separator_LGM50_heat_capacity_ORegan2022.py deleted file mode 100644 index b7b5d87e00..0000000000 --- a/pybamm/input/parameters/lithium_ion/separators/separator_ORegan2022/separator_LGM50_heat_capacity_ORegan2022.py +++ /dev/null @@ -1,42 +0,0 @@ -from pybamm import Parameter - - -def separator_LGM50_heat_capacity_ORegan2022(T): - """ - Wet separator specific heat capacity as a function of the temperature from [1]. - - References - ---------- - .. [1] Kieran O’Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma - Kendrick. "Thermal-electrochemical parameters of a high energy lithium-ion - cylindrical battery." Electrochimica Acta 425 (2022): 140700 - - Parameters - ---------- - T: :class:`pybamm.Symbol` - Dimensional temperature - - Returns - ------- - :class:`pybamm.Symbol` - Specific heat capacity - """ - - # value for the dry porous separator (i.e. separator + air, and we neglect the air - # contribution to density) - cp_dry = 1.494e-3 * T**3 - 1.444 * T**2 + 475.5 * T - 5.13e4 - rho_dry = 946 - theta_dry = rho_dry * cp_dry - - # value for the bulk electrolyte - rho_e = 1280 - cp_e = 229 - eps_e = Parameter("Separator porosity") - theta_e = rho_e * cp_e - - # value for the wet separator - theta_wet = theta_dry + theta_e * eps_e - rho_wet = rho_dry + rho_e * eps_e - cp_wet = theta_wet / rho_wet - - return cp_wet diff --git a/pybamm/input/parameters/lithium_ion/separators/separator_Xu2019/README.md b/pybamm/input/parameters/lithium_ion/separators/separator_Xu2019/README.md deleted file mode 100644 index 2777f05f58..0000000000 --- a/pybamm/input/parameters/lithium_ion/separators/separator_Xu2019/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Separator parameters - -Parameters for a Celgard 2325 separator, from the paper - -> Xu, Shanshan, Chen, Kuan-Hung, Dasgupta, Neil P., Siegel, Jason B. and Stefanopoulou, Anna G. "Evolution of Dead Lithium Growth in Lithium Metal Batteries: Experimentally Validated Model of the Apparent Capacity Loss." Journal of The Electrochemical Society 166.14 (2019): A3456-A3463. - -and references therein. diff --git a/pybamm/input/parameters/lithium_ion/separators/separator_Xu2019/parameters.csv b/pybamm/input/parameters/lithium_ion/separators/separator_Xu2019/parameters.csv deleted file mode 100644 index 77febaeb43..0000000000 --- a/pybamm/input/parameters/lithium_ion/separators/separator_Xu2019/parameters.csv +++ /dev/null @@ -1,6 +0,0 @@ -Name [units],Value,Reference,Notes -# Empty rows and rows starting with ‘#’ will be ignored,,, -,,, -Separator porosity,0.39,, -Separator Bruggeman coefficient (electrolyte),1.5,, -Separator Bruggeman coefficient (electrode),1.5,, diff --git a/pybamm/parameters/parameter_sets.py b/pybamm/parameters/parameter_sets.py index 11c9339ec2..375f043c38 100644 --- a/pybamm/parameters/parameter_sets.py +++ b/pybamm/parameters/parameter_sets.py @@ -1,225 +1,9 @@ # # Parameter sets from papers +# This file is being deprecated and replaced with defined parameter sets directly +# in python files in the input/parameters folder. The Ai2020 parameter set is +# kept here for now as it is used in the tests, but will be removed in the future. # -""" -Parameter sets from papers. The 'citation' entry provides a reference to the appropriate -paper in the file "pybamm/CITATIONS.txt". To see which parameter sets have been used in -your simulation, add the line "pybamm.print_citations()" to your script. - -Lead-acid parameter sets ------------------------- - * Sulzer2019 : - - Valentin Sulzer, S. Jon Chapman, Colin P. Please, David A. Howey, and Charles - W. Monroe. Faster Lead-Acid Battery Simulations from Porous-Electrode Theory: - Part I. Physical Model. Journal of The Electrochemical Society, - 166(12):A2363–A2371, 2019. doi:10.1149/2.0301910jes. - -Lithium-ion parameter sets --------------------------- - * Ai2020 : - - Weilong Ai, Ludwig Kraft, Johannes Sturm, Andreas Jossen, and Billy Wu. - Electrochemical thermal-mechanical modelling of stress inhomogeneity in - lithium-ion pouch cells. Journal of The Electrochemical Society, 167(1):013512, - 2019. doi:10.1149/2.0122001JES. - * Chen2020 : - - Chang-Hui Chen, Ferran Brosa Planella, Kieran O'Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. Development of Experimental Techniques - for Parameterization of Multi-scale Lithium-ion Battery Models. Journal of The - Electrochemical Society, 167(8):080534, 2020. doi:10.1149/1945-7111/ab9050. - * Chen2020_composite : - - Weilong Ai, Niall Kirkaldy, Yang Jiang, Gregory Offer, Huizhi Wang, and Billy - Wu. A composite electrode model for lithium-ion batteries with silicon/graphite - negative electrodes. Journal of Power Sources, 527:231142, 2022. URL: - https://www.sciencedirect.com/science/article/pii/S0378775322001604, - doi:https://doi.org/10.1016/j.jpowsour.2022.231142. - - Chang-Hui Chen, Ferran Brosa Planella, Kieran O'Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. Development of Experimental Techniques - for Parameterization of Multi-scale Lithium-ion Battery Models. Journal of The - Electrochemical Society, 167(8):080534, 2020. doi:10.1149/1945-7111/ab9050. - * Ecker2015 : - - Madeleine Ecker, Stefan Käbitz, Izaro Laresgoiti, and Dirk Uwe Sauer. - Parameterization of a Physico-Chemical Model of a Lithium-Ion Battery: II. - Model Validation. Journal of The Electrochemical Society, 162(9):A1849–A1857, - 2015. doi:10.1149/2.0541509jes. - - Madeleine Ecker, Thi Kim Dung Tran, Philipp Dechent, Stefan Käbitz, Alexander - Warnecke, and Dirk Uwe Sauer. Parameterization of a Physico-Chemical Model of a - Lithium-Ion Battery: I. Determination of Parameters. Journal of the - Electrochemical Society, 162(9):A1836–A1848, 2015. doi:10.1149/2.0551509jes. - - Alastair Hales, Laura Bravo Diaz, Mohamed Waseem Marzook, Yan Zhao, Yatish - Patel, and Gregory Offer. The cell cooling coefficient: a standard to define - heat rejection from lithium-ion batteries. Journal of The Electrochemical - Society, 166(12):A2383, 2019. - - Giles Richardson, Ivan Korotkin, Rahifa Ranom, Michael Castle, and Jamie M. - Foster. Generalised single particle models for high-rate operation of graded - lithium-ion electrodes: systematic derivation and validation. Electrochimica - Acta, 339:135862, 2020. doi:10.1016/j.electacta.2020.135862. - - Yan Zhao, Yatish Patel, Teng Zhang, and Gregory J Offer. Modeling the effects - of thermal gradients induced by tab and surface cooling on lithium ion cell - performance. Journal of The Electrochemical Society, 165(13):A3169, 2018. - * Marquis2019 : - - Scott G. Marquis, Valentin Sulzer, Robert Timms, Colin P. Please, and S. Jon - Chapman. An asymptotic derivation of a single particle model with electrolyte. - Journal of The Electrochemical Society, 166(15):A3693–A3706, 2019. - doi:10.1149/2.0341915jes. - * Mohtat2020 : - - Peyman Mohtat, Suhak Lee, Valentin Sulzer, Jason B. Siegel, and Anna G. - Stefanopoulou. Differential Expansion and Voltage Model for Li-ion Batteries at - Practical Charging Rates. Journal of The Electrochemical Society, - 167(11):110561, 2020. doi:10.1149/1945-7111/aba5d1. - * NCA_Kim2011 : - - Gi-Heon Kim, Kandler Smith, Kyu-Jin Lee, Shriram Santhanagopalan, and Ahmad - Pesaran. Multi-domain modeling of lithium-ion batteries encompassing - multi-physics in varied length scales. Journal of the Electrochemical Society, - 158(8):A955–A969, 2011. doi:10.1149/1.3597614. - * OKane2022 : - - Chang-Hui Chen, Ferran Brosa Planella, Kieran O'Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. Development of Experimental Techniques - for Parameterization of Multi-scale Lithium-ion Battery Models. Journal of The - Electrochemical Society, 167(8):080534, 2020. doi:10.1149/1945-7111/ab9050. - - Simon E. J. O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, - Robert Timms, Valentin Sulzer, Jacqueline Sophie Edge, Billy Wu, Gregory J. - Offer, and Monica Marinescu. Lithium-ion battery degradation: how to model it. - Phys. Chem. Chem. Phys., 24:7909-7922, 2022. URL: - http://dx.doi.org/10.1039/D2CP00417H, doi:10.1039/D2CP00417H. - * ORegan2022 : - - Chang-Hui Chen, Ferran Brosa Planella, Kieran O'Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. Development of Experimental Techniques - for Parameterization of Multi-scale Lithium-ion Battery Models. Journal of The - Electrochemical Society, 167(8):080534, 2020. doi:10.1149/1945-7111/ab9050. - - Kieran O'Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. - Thermal-electrochemical parameters of a high energy lithium-ion cylindrical - battery. Electrochimica Acta, 425:140700, 2022. - doi:10.1016/j.electacta.2022.140700. - * Prada2013 : - - Chang-Hui Chen, Ferran Brosa Planella, Kieran O'Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. Development of Experimental Techniques - for Parameterization of Multi-scale Lithium-ion Battery Models. Journal of The - Electrochemical Society, 167(8):080534, 2020. doi:10.1149/1945-7111/ab9050. - - Michael J. Lain, James Brandon, and Emma Kendrick. Design strategies for high - power vs. high energy lithium ion cells. Batteries, 5(4):64, 2019. - doi:10.3390/batteries5040064. - - Eric Prada, D. Di Domenico, Y. Creff, J. Bernard, Valérie Sauvant-Moynot, and - François Huet. A simplified electrochemical and thermal aging model of - LiFePO4-graphite Li-ion batteries: power and capacity fade simulations. Journal - of The Electrochemical Society, 160(4):A616, 2013. doi:10.1149/2.053304jes. - * Ramadass2004 : - - P Ramadass, Bala Haran, Parthasarathy M Gomadam, Ralph White, and Branko N - Popov. Development of first principles capacity fade model for li-ion cells. - Journal of the Electrochemical Society, 151(2):A196, 2004. - doi:10.1149/1.1634273. - * Xu2019 : - - Shanshan Xu, Kuan-Hung Chen, Neil P Dasgupta, Jason B Siegel, and Anna G - Stefanopoulou. Evolution of dead lithium growth in lithium metal batteries: - experimentally validated model of the apparent capacity loss. Journal of The - Electrochemical Society, 166(14):A3456, 2019. -""" - -# -# Lithium-ion -# - -NCA_Kim2011 = { - "chemistry": "lithium_ion", - "cell": "Kim2011", - "negative electrode": "graphite_Kim2011", - "separator": "separator_Kim2011", - "positive electrode": "nca_Kim2011", - "electrolyte": "lipf6_Kim2011", - "experiment": "1C_discharge_from_full_Kim2011", - "sei": "example", - "citation": "Kim2011", -} - -Ecker2015 = { - "chemistry": "lithium_ion", - "cell": "kokam_Ecker2015", - "negative electrode": "graphite_Ecker2015", - "separator": "separator_Ecker2015", - "positive electrode": "LiNiCoO2_Ecker2015", - "electrolyte": "lipf6_Ecker2015", - "experiment": "1C_discharge_from_full_Ecker2015", - "sei": "example", - "citation": [ - "Ecker2015i", - "Ecker2015ii", - "Zhao2018", - "Hales2019", - "Richardson2020", - ], -} - -Marquis2019 = { - "chemistry": "lithium_ion", - "cell": "kokam_Marquis2019", - "negative electrode": "graphite_mcmb2528_Marquis2019", - "separator": "separator_Marquis2019", - "positive electrode": "lico2_Marquis2019", - "electrolyte": "lipf6_Marquis2019", - "experiment": "1C_discharge_from_full_Marquis2019", - "sei": "example", - "citation": "Marquis2019", -} - -Chen2020 = { - "chemistry": "lithium_ion", - "cell": "LGM50_Chen2020", - "negative electrode": "graphite_Chen2020", - "separator": "separator_Chen2020", - "positive electrode": "nmc_Chen2020", - "electrolyte": "lipf6_Nyman2008", - "experiment": "1C_discharge_from_full_Chen2020", - "sei": "example", - "citation": "Chen2020", -} - -Chen2020_composite = { - "chemistry": "lithium_ion", - "cell": "LGM50_Chen2020", - "negative electrode": "graphite_Chen2020_composite", - "separator": "separator_Chen2020", - "positive electrode": "nmc_Chen2020", - "electrolyte": "lipf6_Nyman2008", - "experiment": "1C_discharge_from_full_Chen2020", - "sei": "example_composite", - "citation": ["Chen2020", "Ai2022"], -} - -Mohtat2020 = { - "chemistry": "lithium_ion", - "cell": "UMBL_Mohtat2020", - "negative electrode": "graphite_UMBL_Mohtat2020", - "separator": "separator_Mohtat2020", - "positive electrode": "NMC_UMBL_Mohtat2020", - "electrolyte": "LiPF6_Mohtat2020", - "experiment": "1C_charge_from_empty_Mohtat2020", - "sei": "example", - "lithium plating": "yang2017_Li_plating", - "citation": "Mohtat2020", -} - -Ramadass2004 = { - "chemistry": "lithium_ion", - "cell": "sony_Ramadass2004", - "negative electrode": "graphite_Ramadass2004", - "separator": "separator_Ecker2015", # no values found, relevance? - "positive electrode": "lico2_Ramadass2004", - "electrolyte": "lipf6_Ramadass2004", - "experiment": "1C_discharge_from_full_Ramadass2004", - "sei": "ramadass2004", - "citation": "Ramadass2004", -} - -Prada2013 = { - "chemistry": "lithium_ion", - "cell": "A123_Lain2019", - "negative electrode": "graphite_Chen2020", - "separator": "separator_Chen2020", - "positive electrode": "LFP_Prada2013", - "electrolyte": "lipf6_Nyman2008", - "experiment": "4C_discharge_from_full_Prada2013", - "citation": ["Chen2020", "Lain2019", "Prada2013"], -} - Ai2020 = { "chemistry": "lithium_ion", "cell": "Enertech_Ai2020", @@ -231,54 +15,3 @@ "sei": "example", "citation": "Ai2019", } - -Xu2019 = { - "chemistry": "lithium_ion", - "cell": "li_metal_Xu2019", - "negative electrode": "li_metal_Xu2019", - "separator": "separator_Xu2019", - "positive electrode": "NMC532_Xu2019", - "electrolyte": "lipf6_Valoen2005", - "experiment": "1C_discharge_from_full_Xu2019", - "sei": "example", - "citation": "Xu2019", -} - -ORegan2022 = { - "chemistry": "lithium_ion", - "cell": "LGM50_ORegan2022", - "negative electrode": "graphite_ORegan2022", - "separator": "separator_ORegan2022", - "positive electrode": "nmc_ORegan2022", - "electrolyte": "lipf6_EC_EMC_3_7_Landesfeind2019", - "experiment": "1C_discharge_from_full_ORegan2022", - "citation": ["ORegan2022", "Chen2020"], -} - -OKane2022 = { - "chemistry": "lithium_ion", - "cell": "LGM50_Chen2020", - "negative electrode": "graphite_OKane2022", - "separator": "separator_Chen2020", - "positive electrode": "nmc_OKane2022", - "electrolyte": "lipf6_OKane2022", - "experiment": "1C_discharge_from_full_Chen2020", - "sei": "OKane2022", - "lithium plating": "okane2022_Li_plating", - "citation": ["OKane2022", "Chen2020"], -} - -# -# Lead-acid -# - -Sulzer2019 = { - "chemistry": "lead_acid", - "cell": "BBOXX_Sulzer2019", - "negative electrode": "lead_Sulzer2019", - "separator": "agm_Sulzer2019", - "positive electrode": "lead_dioxide_Sulzer2019", - "electrolyte": "sulfuric_acid_Sulzer2019", - "experiment": "1C_discharge_from_full", - "citation": "Sulzer2019physical", -} diff --git a/pybamm/parameters/parameter_values.py b/pybamm/parameters/parameter_values.py index f23347fa80..833a2065ba 100644 --- a/pybamm/parameters/parameter_values.py +++ b/pybamm/parameters/parameter_values.py @@ -50,11 +50,6 @@ class ParameterValues: >>> param = pybamm.ParameterValues(values) >>> param["some parameter"] 1 - >>> file = "input/parameters/lithium_ion/cells/kokam_Marquis2019/parameters.csv" - >>> values_path = pybamm.get_parameters_filepath(file) - >>> param = pybamm.ParameterValues(values_path) - >>> param["Negative current collector thickness [m]"] - 2.5e-05 >>> param = pybamm.ParameterValues("Marquis2019") >>> param["Reference temperature [K]"] 298.15 diff --git a/pybamm/parameters/update_parameter_sets_doc.py b/pybamm/parameters/update_parameter_sets_doc.py deleted file mode 100644 index e92ff663bb..0000000000 --- a/pybamm/parameters/update_parameter_sets_doc.py +++ /dev/null @@ -1,119 +0,0 @@ -""" -Automatically update the docstring of parameter_sets.py -""" - -from collections import defaultdict -import os -import re - -import pybtex - -import pybamm -from pybamm.parameters import parameter_sets - - -DOC_INTRO = """ -Parameter sets from papers. The 'citation' entry provides a reference to the appropriate -paper in the file "pybamm/CITATIONS.txt". To see which parameter sets have been used in -your simulation, add the line "pybamm.print_citations()" to your script.""" - - -def get_ps_dict(): - """ - Returns {chemistry:(author_year, [citations])} from all dictionaries in - parameter_sets.py - """ - parameter_set_dict = defaultdict(list) - for ps_name, ps_dict in parameter_sets.__dict__.items(): - if not isinstance(ps_dict, dict): - continue - elif "citation" not in ps_dict or "chemistry" not in ps_dict: - continue - - chemistry = ps_dict["chemistry"] - citation = ps_dict["citation"] - - # Enclose citation in a list if not already enclosed - if not isinstance(citation, list): - citation = [citation] - - parameter_set_dict[chemistry].append((ps_name, citation)) - return parameter_set_dict - - -def generate_ps_doc(parameter_set_dict): - """ - Generates docstring of parameter_sets.py from the given dictionary - """ - output_list = [DOC_INTRO] - citations_file = os.path.join(pybamm.root_dir(), "pybamm", "CITATIONS.txt") - - for ps_chemistry in sorted(parameter_set_dict.keys()): - output_list.append("") - ps_citations = parameter_set_dict[ps_chemistry] - chem_name = ps_chemistry.capitalize().replace("_", "-") + " " + "parameter sets" - output_list.append(chem_name) - dashes = "-" * len(ps_chemistry) + "-" * 15 - output_list.append(dashes) - - for ps_name, ps_citation in sorted(ps_citations): - citations = pybtex.format_from_file( - citations_file, - style="plain", - output_backend="plaintext", - citations=ps_citation, - nocite=True, - ) - # Remove citation labels "[3]" - citations = re.split(r"(?:^|\n)\[\d+\]\s", citations) - # Remove empty strings - citations = filter(bool, citations) - fmt_citations = [] - for citation in citations: - # Break line at the first space before 80 characters - citation_parts = re.findall(r"(.{1,79})(?:\s|$)", citation) - # first_line = citation.split('\n') - - indent_citation_parts = [] - for idx, citation_part in enumerate(citation_parts): - if idx == 0: - citation_part = "- " + citation_part - else: - citation_part = " " + citation_part - indent_citation_parts.append(" " * 7 + citation_part) - - # Join to create a single citation paragraph - citation = "\n".join(indent_citation_parts) - fmt_citations.append(citation) - fmt_citations = "\n".join(fmt_citations) - ps_doc = f" * {ps_name:} :\n{fmt_citations}" - output_list.append(ps_doc) - - output = "\n".join(output_list) - output += "\n" - return output - - -def update_doc(generated_doc): - """ - Opens parameter_sets.py, replaces the docstring and then writes it - """ - with open( - os.path.join(pybamm.root_dir(), "pybamm", "parameters", "parameter_sets.py"), - "r+", - ) as ps_fp: - ps_output = ps_fp.read() - ps_output = ps_output.replace(parameter_sets.__doc__, generated_doc) - ps_fp.truncate(0) - ps_fp.seek(0) - ps_fp.write(ps_output) - - -def main(): - parameter_set_dict = get_ps_dict() - generated_doc = generate_ps_doc(parameter_set_dict) - update_doc(generated_doc) - - -if __name__ == "__main__": - main() From e40e21dff28d44d0090a9a34ff4ee7843ede288f Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Wed, 5 Oct 2022 15:35:15 -0400 Subject: [PATCH 12/28] #2334 fixing tests --- .../test_parameter_sets/test_LCO_Ai2020.py | 82 +++------ .../test_LCO_Ramadass2004.py | 94 +++-------- .../test_parameter_sets/test_LFP_Prada2013.py | 44 ----- .../test_LGM50_Chen2020.py | 72 -------- .../test_LGM50_ORegan2022.py | 159 +++++------------- .../test_parameter_sets/test_NCA_Kim2011.py | 59 ------- .../test_parameter_sets/test_NCO_Ecker2015.py | 61 ------- .../test_NMChalfcell_Xu2019.py | 61 ------- .../test_parameter_sets/test_OKane2020.py | 60 ------- .../test_parameter_sets/test_OKane2022.py | 74 ++------ .../test_UMBL_Mohtat2020.py | 60 ------- .../test_parameters_with_default_model.py | 44 +++++ .../test_update_parameter_sets_doc.py | 66 -------- 13 files changed, 147 insertions(+), 789 deletions(-) delete mode 100644 tests/unit/test_parameters/test_parameter_sets/test_LFP_Prada2013.py delete mode 100644 tests/unit/test_parameters/test_parameter_sets/test_LGM50_Chen2020.py delete mode 100644 tests/unit/test_parameters/test_parameter_sets/test_NCA_Kim2011.py delete mode 100644 tests/unit/test_parameters/test_parameter_sets/test_NCO_Ecker2015.py delete mode 100644 tests/unit/test_parameters/test_parameter_sets/test_NMChalfcell_Xu2019.py delete mode 100644 tests/unit/test_parameters/test_parameter_sets/test_OKane2020.py delete mode 100644 tests/unit/test_parameters/test_parameter_sets/test_UMBL_Mohtat2020.py create mode 100644 tests/unit/test_parameters/test_parameter_sets/test_parameters_with_default_model.py delete mode 100644 tests/unit/test_parameters/test_update_parameter_sets_doc.py diff --git a/tests/unit/test_parameters/test_parameter_sets/test_LCO_Ai2020.py b/tests/unit/test_parameters/test_parameter_sets/test_LCO_Ai2020.py index f0a1105375..8fde394d69 100644 --- a/tests/unit/test_parameters/test_parameter_sets/test_LCO_Ai2020.py +++ b/tests/unit/test_parameters/test_parameter_sets/test_LCO_Ai2020.py @@ -7,88 +7,44 @@ class TestAi2020(unittest.TestCase): - def test_load_params(self): - negative_electrode = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/" - "parameters.csv" - ) - ) - self.assertEqual(negative_electrode["Negative electrode porosity"], "0.33") - - positive_electrode = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/" - "parameters.csv" - ) - ) - self.assertEqual(positive_electrode["Positive electrode porosity"], "0.32") - - electrolyte = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/electrolytes/lipf6_Enertech_Ai2020/" - + "parameters.csv" - ) - ) - self.assertEqual(electrolyte["Cation transference number"], "0.38") - - cell = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/cells/Enertech_Ai2020/parameters.csv" - ) - ) - self.assertAlmostEqual(cell["Negative current collector thickness [m]"], 10e-6) - def test_functions(self): - root = pybamm.root_dir() param = pybamm.ParameterValues("Ai2020") sto = pybamm.Scalar(0.5) T = pybamm.Scalar(298.15) - # Positive electrode - p = "pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/" - k_path = os.path.join(root, p) - c_p_max = param["Maximum concentration in positive electrode [mol.m-3]"] + c_n_max = param["Maximum concentration in negative electrode [mol.m-3]"] fun_test = { - "lico2_cracking_rate_Ai2020": ([T], 3.9e-20), - "lico2_diffusivity_Dualfoil1998": ([sto, T], 5.387e-15), - "lico2_electrolyte_exchange_current_density_Dualfoil1998": ( + # Positive electrode + "Positive electrode cracking rate": ([T], 3.9e-20), + "Positive electrode diffusivity [m2.s-1]": ([sto, T], 5.387e-15), + "Positive electrode exchange-current density [A.m-2]": ( [1e3, 1e4, c_p_max, T], 0.6098, ), - "lico2_entropic_change_Ai2020_function": ([sto, c_p_max], -2.1373e-4), - "lico2_ocp_Ai2020_function.py": ([sto], 4.1638), - "lico2_volume_change_Ai2020": ([sto, c_p_max], -1.8179e-2), - } - - for name, value in fun_test.items(): - fun = pybamm.load_function(os.path.join(k_path, name)) - self.assertAlmostEqual(param.evaluate(fun(*value[0])), value[1], places=4) - - # Negative electrode - p = "pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/" - k_path = os.path.join(root, p) - - c_n_max = param["Maximum concentration in negative electrode [mol.m-3]"] - fun_test = { - "graphite_cracking_rate_Ai2020.py": ([T], 3.9e-20), - "graphite_diffusivity_Dualfoil1998.py": ([sto, T], 3.9e-14), - "graphite_electrolyte_exchange_current_density_Dualfoil1998.py": ( + "Positive electrode OCP entropic change [V.K-1]": ( + [sto, c_p_max], + -2.1373e-4, + ), + "Positive electrode volume change": ([sto, c_p_max], -1.8179e-2), + # Negative electrode + "Negative electrode cracking rate": ([T], 3.9e-20), + "Negative electrode diffusivity [m2.s-1]": ([sto, T], 3.9e-14), + "Negative electrode exchange-current density [A.m-2]": ( [1e3, 1e4, c_n_max, T], 0.4172, ), - "graphite_entropy_Enertech_Ai2020_function.py": ( + "Negative electrode OCP entropic change [V.K-1]": ( [sto, c_n_max], -1.1033e-4, ), - "graphite_ocp_Enertech_Ai2020_function.py": ([sto], 0.1395), - "graphite_volume_change_Ai2020.py": ([sto, c_n_max], 5.1921e-2), + "Negative electrode volume change": ([sto, c_n_max], 5.1921e-2), } for name, value in fun_test.items(): - fun = pybamm.load_function(os.path.join(k_path, name)) - self.assertAlmostEqual(param.evaluate(fun(*value[0])), value[1], places=4) + self.assertAlmostEqual( + param.evaluate(param[name](*value[0])), value[1], places=4 + ) def test_standard_lithium_parameters(self): parameter_values = pybamm.ParameterValues("Ai2020") diff --git a/tests/unit/test_parameters/test_parameter_sets/test_LCO_Ramadass2004.py b/tests/unit/test_parameters/test_parameter_sets/test_LCO_Ramadass2004.py index 3b3e75662b..1692624525 100644 --- a/tests/unit/test_parameters/test_parameter_sets/test_LCO_Ramadass2004.py +++ b/tests/unit/test_parameters/test_parameter_sets/test_LCO_Ramadass2004.py @@ -7,96 +7,42 @@ class TestRamadass2004(unittest.TestCase): - def test_load_params(self): - negative_electrode = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/negative_electrodes/" - "graphite_Ramadass2004/parameters.csv" - ) - ) - self.assertEqual(negative_electrode["Negative electrode porosity"], "0.485") - - positive_electrode = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/positive_electrodes/lico2_Ramadass2004/" - "parameters.csv" - ) - ) - self.assertEqual(positive_electrode["Positive electrode porosity"], "0.385") - - electrolyte = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/electrolytes/lipf6_Ramadass2004/" - + "parameters.csv" - ) - ) - self.assertEqual(electrolyte["Cation transference number"], "0.363") - - cell = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/cells/sony_Ramadass2004/parameters.csv" - ) - ) - self.assertAlmostEqual( - cell["Negative current collector thickness [m]"], 1.7e-05 - ) - def test_functions(self): - root = pybamm.root_dir() param = pybamm.ParameterValues("Ramadass2004") sto = pybamm.Scalar(0.5) T = pybamm.Scalar(298.15) - # Positive electrode - p = ( - "pybamm/input/parameters/lithium_ion/positive_electrodes/" - "lico2_Ramadass2004/" - ) - k_path = os.path.join(root, p) - c_p_max = param["Maximum concentration in positive electrode [mol.m-3]"] + c_n_max = param["Maximum concentration in negative electrode [mol.m-3]"] fun_test = { - "lico2_diffusivity_Ramadass2004.py": ([sto, T], 1e-14), - "lico2_electrolyte_exchange_current_density_Ramadass2004.py": ( + # Positive electrode + "Positive electrode diffusivity [m2.s-1]": ([sto, T], 1e-14), + "Positive electrode exchange-current density [A.m-2]": ( [1e3, 1e4, c_p_max, T], 1.4517, ), - "lico2_entropic_change_Moura2016.py": ([sto, c_p_max], -3.4664e-5), - "lico2_ocp_Ramadass2004.py": ([sto], 4.1249), - } - - for name, value in fun_test.items(): - fun = pybamm.load_function(os.path.join(k_path, name)) - self.assertAlmostEqual(param.evaluate(fun(*value[0])), value[1], places=4) - - # Negative electrode - p = ( - "pybamm/input/parameters/lithium_ion/negative_electrodes/" - "graphite_Ramadass2004/" - ) - k_path = os.path.join(root, p) - - c_n_max = param["Maximum concentration in negative electrode [mol.m-3]"] - fun_test = { - "graphite_mcmb2528_diffusivity_Dualfoil1998.py": ([sto, T], 3.9e-14), - "graphite_electrolyte_exchange_current_density_Ramadass2004.py": ( + "Positive electrode OCP entropic change [V.K-1]": ( + [sto, c_p_max], + -3.4664e-5, + ), + "Positive electrode OCP [V]": ([sto], 4.1249), + # Negative electrode + "Negative electrode diffusivity [m2.s-1]": ([sto, T], 3.9e-14), + "Negative electrode exchange-current density [A.m-2]": ( [1e3, 1e4, c_n_max, T], 2.2007, ), - "graphite_entropic_change_Moura2016.py": ([sto, c_n_max], -1.5079e-5), - "graphite_ocp_Ramadass2004.py": ([sto], 0.1215), + "Negative electrode OCP entropic change [V.K-1]": ( + [sto, c_n_max], + -1.5079e-5, + ), + "Negative electrode OCP [V]": ([sto], 0.1215), } for name, value in fun_test.items(): - fun = pybamm.load_function(os.path.join(k_path, name)) - self.assertAlmostEqual(param.evaluate(fun(*value[0])), value[1], places=4) - - def test_standard_lithium_parameters(self): - parameter_values = pybamm.ParameterValues("Ramadass2004") - model = pybamm.lithium_ion.DFN() - sim = pybamm.Simulation(model, parameter_values=parameter_values) - sim.set_parameters() - sim.build() + self.assertAlmostEqual( + param.evaluate(param[name](*value[0])), value[1], places=4 + ) if __name__ == "__main__": diff --git a/tests/unit/test_parameters/test_parameter_sets/test_LFP_Prada2013.py b/tests/unit/test_parameters/test_parameter_sets/test_LFP_Prada2013.py deleted file mode 100644 index e8d9c62034..0000000000 --- a/tests/unit/test_parameters/test_parameter_sets/test_LFP_Prada2013.py +++ /dev/null @@ -1,44 +0,0 @@ -# -# Tests for LFP Prada 2013 parameter set -# -import pybamm -import unittest - - -class TestLFPPrada2013(unittest.TestCase): - def test_load_params(self): - positive_electrode = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/positive_electrodes/LFP_Prada2013/" - "parameters.csv" - ) - ) - self.assertEqual( - positive_electrode["Positive electrode porosity"], "0.12728395" - ) - - cell = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/cells/A123_Lain2019/parameters.csv" - ) - ) - self.assertAlmostEqual(cell["Negative current collector thickness [m]"], 1e-5) - - def test_standard_lithium_parameters(self): - - parameter_values = pybamm.ParameterValues("Prada2013") - - model = pybamm.lithium_ion.DFN() - sim = pybamm.Simulation(model, parameter_values=parameter_values) - sim.set_parameters() - sim.build() - - -if __name__ == "__main__": - print("Add -v for more debug output") - import sys - - if "-v" in sys.argv: - debug = True - pybamm.settings.debug_mode = True - unittest.main() diff --git a/tests/unit/test_parameters/test_parameter_sets/test_LGM50_Chen2020.py b/tests/unit/test_parameters/test_parameter_sets/test_LGM50_Chen2020.py deleted file mode 100644 index b9e01a4e33..0000000000 --- a/tests/unit/test_parameters/test_parameter_sets/test_LGM50_Chen2020.py +++ /dev/null @@ -1,72 +0,0 @@ -# -# Tests for LG M50 parameter set loads -# -import pybamm -import unittest - - -class TestChen(unittest.TestCase): - def test_load_params(self): - negative_electrode = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/negative_electrodes/graphite_Chen2020/" - "parameters.csv" - ) - ) - self.assertEqual(negative_electrode["Negative electrode porosity"], "0.25") - - positive_electrode = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/positive_electrodes/nmc_Chen2020/" - "parameters.csv" - ) - ) - self.assertEqual(positive_electrode["Positive electrode porosity"], "0.335") - - electrolyte = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/electrolytes/lipf6_Nyman2008/" - + "parameters.csv" - ) - ) - self.assertEqual(electrolyte["Cation transference number"], "0.2594") - - cell = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/cells/LGM50_Chen2020/parameters.csv" - ) - ) - self.assertAlmostEqual(cell["Negative current collector thickness [m]"], 12e-6) - - def test_standard_lithium_parameters(self): - - parameter_values = pybamm.ParameterValues("Chen2020") - - model = pybamm.lithium_ion.DFN() - sim = pybamm.Simulation(model, parameter_values=parameter_values) - sim.set_parameters() - sim.build() - - def test_standard_lithium_parameters_composite(self): - - parameter_values = pybamm.ParameterValues("Chen2020_composite") - - model = pybamm.lithium_ion.DFN( - { - "particle phases": ("2", "1"), - "open circuit potential": (("single", "current sigmoid"), "single"), - } - ) - sim = pybamm.Simulation(model, parameter_values=parameter_values) - sim.set_parameters() - sim.build() - - -if __name__ == "__main__": - print("Add -v for more debug output") - import sys - - if "-v" in sys.argv: - debug = True - pybamm.settings.debug_mode = True - unittest.main() diff --git a/tests/unit/test_parameters/test_parameter_sets/test_LGM50_ORegan2022.py b/tests/unit/test_parameters/test_parameter_sets/test_LGM50_ORegan2022.py index 87d7986b47..8f8807469d 100644 --- a/tests/unit/test_parameters/test_parameter_sets/test_LGM50_ORegan2022.py +++ b/tests/unit/test_parameters/test_parameter_sets/test_LGM50_ORegan2022.py @@ -7,137 +7,70 @@ class TestORegan2022(unittest.TestCase): - def test_load_params(self): - negative_electrode = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/negative_electrodes/graphite_ORegan2022/" - "parameters.csv" - ) - ) - self.assertEqual( - negative_electrode["Negative electrode diffusivity [m2.s-1]"], - "[function]graphite_LGM50_diffusivity_ORegan2022", - ) - - positive_electrode = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/" - "parameters.csv" - ) - ) - self.assertEqual( - positive_electrode["Positive electrode conductivity [S.m-1]"], - "[function]nmc_LGM50_electronic_conductivity_ORegan2022", - ) - - electrolyte = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_" - "Landesfeind2019/parameters.csv" - ) - ) - self.assertEqual( - electrolyte["Typical electrolyte concentration [mol.m-3]"], "1000" - ) - - cell = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/cells/LGM50_ORegan2022/parameters.csv" - ) - ) - self.assertEqual( - cell["Negative current collector thermal conductivity [W.m-1.K-1]"], - "[function]copper_thermal_conductivity_CRC", - ) - def test_functions(self): - root = pybamm.root_dir() param = pybamm.ParameterValues("ORegan2022") T = pybamm.Scalar(298.15) - # Positive electrode - p = "pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_ORegan2022/" - k_path = os.path.join(root, p) - c_p_max = param["Maximum concentration in positive electrode [mol.m-3]"] + c_n_max = param["Maximum concentration in negative electrode [mol.m-3]"] fun_test = { - "nmc_LGM50_entropic_change_ORegan2022.py": ([0.5, c_p_max], -9.7940e-07), - "nmc_LGM50_heat_capacity_ORegan2022.py": ([298.15], 902.6502), - "nmc_LGM50_diffusivity_ORegan2022.py": ([0.5, 298.15], 7.2627e-15), - "nmc_LGM50_electrolyte_exchange_current_density_ORegan2022.py": ( + # Positive electrode + "Positive electrode OCP entropic change [V.K-1]": ( + [0.5, c_p_max], + -9.7940e-07, + ), + "Positive electrode specific heat capacity [J.kg-1.K-1]": ( + [298.15], + 902.6502, + ), + "Positive electrode diffusivity [m2.s-1]": ([0.5, 298.15], 7.2627e-15), + "Positive electrode exchange-current density [A.m-2]": ( [1e3, 1e4, c_p_max, 298.15], 2.1939, ), - "nmc_LGM50_ocp_Chen2020.py": ([0.5], 3.9720), - "nmc_LGM50_electronic_conductivity_ORegan2022.py": ([298.15], 0.8473), - "nmc_LGM50_thermal_conductivity_ORegan2022.py": ([T], 0.8047), - } - - for name, value in fun_test.items(): - fun = pybamm.load_function(os.path.join(k_path, name)) - self.assertAlmostEqual(param.evaluate(fun(*value[0])), value[1], places=4) - - # Negative electrode - p = ( - "pybamm/input/parameters/lithium_ion/negative_electrodes/" - "graphite_ORegan2022/" - ) - k_path = os.path.join(root, p) - - c_n_max = param["Maximum concentration in negative electrode [mol.m-3]"] - fun_test = { - "graphite_LGM50_entropic_change_ORegan2022.py": ( + "Positive electrode OCP [V]": ([0.5], 3.9720), + "Positive electrode conductivity [S.m-1]": ([298.15], 0.8473), + "Positive electrode thermal conductivity [W.m-1.K-1]": ([T], 0.8047), + # Negative electrode + "Negative electrode OCP entropic change [V.K-1]": ( [0.5, c_n_max], -2.6460e-07, ), - "graphite_LGM50_heat_capacity_ORegan2022.py": ([298.15], 847.7155), - "graphite_LGM50_diffusivity_ORegan2022.py": ([0.5, 298.15], 2.8655e-16), - "graphite_LGM50_electrolyte_exchange_current_density_ORegan2022.py": ( + "Negative electrode specific heat capacity [J.kg-1.K-1]": ( + [298.15], + 847.7155, + ), + "Negative electrode diffusivity [m2.s-1]": ([0.5, 298.15], 2.8655e-16), + "Negative electrode exchange-current density [A.m-2]": ( [1e3, 1e4, c_n_max, 298.15], 1.0372, ), - "graphite_LGM50_ocp_Chen2020.py": ([0.5], 0.1331), - "graphite_LGM50_thermal_conductivity_ORegan2022.py": ([T], 3.7695), - } - - for name, value in fun_test.items(): - fun = pybamm.load_function(os.path.join(k_path, name)) - self.assertAlmostEqual(param.evaluate(fun(*value[0])), value[1], places=4) - - # Cells - p = "pybamm/input/parameters/lithium_ion/cells/LGM50_ORegan2022/" - k_path = os.path.join(root, p) - - fun_test = { - "aluminium_heat_capacity_CRC.py": ([T], 897.1585), - "copper_heat_capacity_CRC.py": ([T], 388.5190), - "copper_thermal_conductivity_CRC.py": ([T], 400.8491), - } - - for name, value in fun_test.items(): - fun = pybamm.load_function(os.path.join(k_path, name)) - self.assertAlmostEqual(param.evaluate(fun(*value[0])), value[1], places=4) - - # Separator - p = "pybamm/input/parameters/lithium_ion/separators/separator_ORegan2022/" - k_path = os.path.join(root, p) - - fun_test = { - "separator_LGM50_heat_capacity_ORegan2022.py": ([298.15], 1130.9656), + "Negative electrode OCP [V]": ([0.5], 0.1331), + "Negative electrode thermal conductivity [W.m-1.K-1]": ([T], 3.7695), + # Cells + "Positive current collector specific heat capacity [J.kg-1.K-1]": ( + [T], + 897.1585, + ), + "Negative current collector specific heat capacity [J.kg-1.K-1]": ( + [T], + 388.5190, + ), + "Negative current collector thermal conductivity [W.m-1.K-1]": ( + [T], + 400.8491, + ), + # Separator + "Separator specific heat capacity [J.kg-1.K-1]": ( + [298.15], + 1130.9656, + ), } for name, value in fun_test.items(): - fun = pybamm.load_function(os.path.join(k_path, name)) - self.assertAlmostEqual(param.evaluate(fun(*value[0])), value[1], places=4) - - def test_standard_lithium_parameters(self): - - parameter_values = pybamm.ParameterValues("ORegan2022") - - model = pybamm.lithium_ion.DFN() - sim = pybamm.Simulation(model, parameter_values=parameter_values) - sim.set_parameters() - sim.build() + self.assertAlmostEqual( + param.evaluate(param[name](*value[0])), value[1], places=4 + ) if __name__ == "__main__": diff --git a/tests/unit/test_parameters/test_parameter_sets/test_NCA_Kim2011.py b/tests/unit/test_parameters/test_parameter_sets/test_NCA_Kim2011.py deleted file mode 100644 index c907ca2312..0000000000 --- a/tests/unit/test_parameters/test_parameter_sets/test_NCA_Kim2011.py +++ /dev/null @@ -1,59 +0,0 @@ -# -# Tests for NCA parameter set loads -# -import pybamm -import unittest - - -class TestKim(unittest.TestCase): - def test_load_params(self): - negative_electrode = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/negative_electrodes/graphite_Kim2011/" - "parameters.csv" - ) - ) - self.assertEqual(negative_electrode["Negative electrode porosity"], "0.4") - - positive_electrode = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/positive_electrodes/nca_Kim2011/" - "parameters.csv" - ) - ) - self.assertEqual(positive_electrode["Positive electrode porosity"], "0.4") - - electrolyte = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/electrolytes/lipf6_Kim2011/parameters.csv" - ) - ) - self.assertEqual(electrolyte["Cation transference number"], "0.4") - - cell = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/cells/Kim2011/parameters.csv" - ) - ) - self.assertAlmostEqual( - cell["Negative current collector thickness [m]"], 10 ** (-5) - ) - - def test_standard_lithium_parameters(self): - - parameter_values = pybamm.ParameterValues("NCA_Kim2011") - - model = pybamm.lithium_ion.DFN() - sim = pybamm.Simulation(model, parameter_values=parameter_values) - sim.set_parameters() - sim.build() - - -if __name__ == "__main__": - print("Add -v for more debug output") - import sys - - if "-v" in sys.argv: - debug = True - pybamm.settings.debug_mode = True - unittest.main() diff --git a/tests/unit/test_parameters/test_parameter_sets/test_NCO_Ecker2015.py b/tests/unit/test_parameters/test_parameter_sets/test_NCO_Ecker2015.py deleted file mode 100644 index 75e87de580..0000000000 --- a/tests/unit/test_parameters/test_parameter_sets/test_NCO_Ecker2015.py +++ /dev/null @@ -1,61 +0,0 @@ -# -# Tests for Ecker parameter set -# -import pybamm -import unittest - - -class TestEcker(unittest.TestCase): - def test_load_params(self): - negative_electrode = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/negative_electrodes/graphite_Ecker2015/" - "parameters.csv" - ) - ) - self.assertEqual(negative_electrode["Negative electrode porosity"], "0.329") - - path = ( - "input/parameters/lithium_ion/positive_electrodes/LiNiCoO2_Ecker2015/" - "parameters.csv" - ) - positive_electrode = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath(path) - ) - self.assertEqual( - positive_electrode["Positive electrode conductivity [S.m-1]"], "68.1" - ) - - electrolyte = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/electrolytes/lipf6_Ecker2015/" - + "parameters.csv" - ) - ) - self.assertEqual(electrolyte["Cation transference number"], "0.26") - - cell = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/cells/kokam_Ecker2015/parameters.csv" - ) - ) - self.assertAlmostEqual(cell["Negative current collector thickness [m]"], 14e-6) - - def test_standard_lithium_parameters(self): - - parameter_values = pybamm.ParameterValues("Ecker2015") - - model = pybamm.lithium_ion.DFN() - sim = pybamm.Simulation(model, parameter_values=parameter_values) - sim.set_parameters() - sim.build() - - -if __name__ == "__main__": - print("Add -v for more debug output") - import sys - - if "-v" in sys.argv: - debug = True - pybamm.settings.debug_mode = True - unittest.main() diff --git a/tests/unit/test_parameters/test_parameter_sets/test_NMChalfcell_Xu2019.py b/tests/unit/test_parameters/test_parameter_sets/test_NMChalfcell_Xu2019.py deleted file mode 100644 index a68016eca1..0000000000 --- a/tests/unit/test_parameters/test_parameter_sets/test_NMChalfcell_Xu2019.py +++ /dev/null @@ -1,61 +0,0 @@ -# -# Tests for LG M50 parameter set loads -# -import pybamm -import unittest - - -class TestXu(unittest.TestCase): - def test_load_params(self): - negative_electrode = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/negative_electrodes/li_metal_Xu2019/" - "parameters.csv" - ) - ) - self.assertEqual( - negative_electrode["Typical plated lithium concentration [mol.m-3]"], - "76900", - ) - - positive_electrode = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/positive_electrodes/NMC532_Xu2019/" - "parameters.csv" - ) - ) - self.assertEqual(positive_electrode["Positive electrode porosity"], "0.331") - - electrolyte = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/electrolytes/lipf6_Valoen2005/" - + "parameters.csv" - ) - ) - self.assertEqual(electrolyte["Cation transference number"], "0.38") - - cell = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/cells/li_metal_Xu2019/parameters.csv" - ) - ) - self.assertAlmostEqual(cell["Negative electrode thickness [m]"], 700e-6) - - def test_standard_lithium_parameters(self): - - parameter_values = pybamm.ParameterValues("Xu2019") - - model = pybamm.lithium_ion.BasicDFNHalfCell({"working electrode": "positive"}) - sim = pybamm.Simulation(model, parameter_values=parameter_values) - sim.set_parameters() - sim.build() - - -if __name__ == "__main__": - print("Add -v for more debug output") - import sys - - if "-v" in sys.argv: - debug = True - pybamm.settings.debug_mode = True - unittest.main() diff --git a/tests/unit/test_parameters/test_parameter_sets/test_OKane2020.py b/tests/unit/test_parameters/test_parameter_sets/test_OKane2020.py deleted file mode 100644 index b1a42451f7..0000000000 --- a/tests/unit/test_parameters/test_parameter_sets/test_OKane2020.py +++ /dev/null @@ -1,60 +0,0 @@ -# -# Tests for O'Kane (2020) parameter set -# -import pybamm -import unittest -import os - - -class TestOKane2020(unittest.TestCase): - def test_load_params(self): - Li_plating = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/" - "parameters.csv" - ) - ) - self.assertEqual( - Li_plating["Lithium metal partial molar volume [m3.mol-1]"], "1.30E-05" - ) - - def test_functions(self): - root = pybamm.root_dir() - param = pybamm.ParameterValues( - { - "chemistry": "lithium_ion", - "cell": "LGM50_Chen2020", - "negative electrode": "graphite_Chen2020", - "separator": "separator_Chen2020", - "positive electrode": "nmc_Chen2020", - "electrolyte": "lipf6_Nyman2008", - "experiment": "1C_discharge_from_full_Chen2020", - "lithium plating": "okane2020_Li_plating", - } - ) - T = pybamm.Scalar(298.15) - - p = "pybamm/input/parameters/lithium_ion/lithium_platings/okane2020_Li_plating/" - k_path = os.path.join(root, p) - - fun_test = { - "plating_exchange_current_density_OKane2020.py": ([1e3, 1e4, T], 9.6485e-3), - "stripping_exchange_current_density_OKane2020.py": ( - [1e3, 1e4, T], - 9.6485e-2, - ), - } - - for name, value in fun_test.items(): - fun = pybamm.load_function(os.path.join(k_path, name)) - self.assertAlmostEqual(param.evaluate(fun(*value[0])), value[1], places=4) - - -if __name__ == "__main__": - print("Add -v for more debug output") - import sys - - if "-v" in sys.argv: - debug = True - pybamm.settings.debug_mode = True - unittest.main() diff --git a/tests/unit/test_parameters/test_parameter_sets/test_OKane2022.py b/tests/unit/test_parameters/test_parameter_sets/test_OKane2022.py index 724eb2857f..9584866f9e 100644 --- a/tests/unit/test_parameters/test_parameter_sets/test_OKane2022.py +++ b/tests/unit/test_parameters/test_parameter_sets/test_OKane2022.py @@ -7,80 +7,42 @@ class TestOKane2022(unittest.TestCase): - def test_load_params(self): - Li_plating = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/" - "parameters.csv" - ) - ) - self.assertEqual( - Li_plating["Lithium metal partial molar volume [m3.mol-1]"], "1.30E-05" - ) - def test_functions(self): - root = pybamm.root_dir() param = pybamm.ParameterValues("OKane2022") sto = pybamm.Scalar(0.9) T = pybamm.Scalar(298.15) - # Lithium plating - p = "pybamm/input/parameters/lithium_ion/lithium_platings/okane2022_Li_plating/" - k_path = os.path.join(root, p) - fun_test = { - "plating_exchange_current_density_OKane2020.py": ([1e3, 1e4, T], 9.6485e-2), - "stripping_exchange_current_density_OKane2020.py": ( + # Lithium plating + "Exchange-current density for plating [A.m-2]": ([1e3, 1e4, T], 9.6485e-2), + "Exchange-current density for stripping [A.m-2]": ( [1e3, 1e4, T], 9.6485e-1, ), - "SEI_limited_dead_lithium_OKane2022.py": ([1e-8], 5e-7), - } - - for name, value in fun_test.items(): - fun = pybamm.load_function(os.path.join(k_path, name)) - self.assertAlmostEqual(param.evaluate(fun(*value[0])), value[1], places=4) - - # Negative electrode - p = ( - "pybamm/input/parameters/lithium_ion/negative_electrodes/" - "graphite_OKane2022/" - ) - k_path = os.path.join(root, p) - - fun_test = { - "graphite_LGM50_diffusivity_Chen2020.py": ([sto, T], 3.3e-14), - "graphite_LGM50_electrolyte_exchange_current_density_Chen2020.py": ( + "Dead lithium decay rate [s-1]": ([1e-8], 5e-7), + # Negative electrode + "Negative electrode diffusivity [m2.s-1]": ([sto, T], 3.3e-14), + "Negative electrode exchange-current density [A.m-2]": ( [1000, 16566.5, 33133, T], 0.33947, ), - "graphite_LGM50_ocp_Chen2020.py": ([sto], 0.0861), - "graphite_cracking_rate_Ai2020.py": ([T], 3.9e-20), - "graphite_volume_change_Ai2020.py": ([sto, 33133], 0.0897), - } - - for name, value in fun_test.items(): - fun = pybamm.load_function(os.path.join(k_path, name)) - self.assertAlmostEqual(param.evaluate(fun(*value[0])), value[1], places=4) - - # Positive electrode - p = "pybamm/input/parameters/lithium_ion/positive_electrodes/nmc_OKane2022/" - k_path = os.path.join(root, p) - - fun_test = { - "nmc_LGM50_diffusivity_Chen2020.py": ([sto, T], 4e-15), - "nmc_LGM50_electrolyte_exchange_current_density_Chen2020.py": ( + "Negative electrode cracking rate": ([T], 3.9e-20), + "Negative electrode volume change": ([sto, 33133], 0.0897), + # Positive electrode + "Positive electrode diffusivity [m2.s-1]": ([sto, T], 4e-15), + "Positive electrode exchange-current density [A.m-2]": ( [1000, 31552, 63104, T], 3.4123, ), - "nmc_LGM50_ocp_Chen2020.py": ([sto], 3.5682), - "cracking_rate_Ai2020.py": ([T], 3.9e-20), - "volume_change_Ai2020.py": ([sto, 63104], 0.70992), + "Positive electrode OCP [V]": ([sto], 3.5682), + "Positive electrode cracking rate": ([T], 3.9e-20), + "Positive electrode volume change": ([sto, 63104], 0.70992), } for name, value in fun_test.items(): - fun = pybamm.load_function(os.path.join(k_path, name)) - self.assertAlmostEqual(param.evaluate(fun(*value[0])), value[1], places=4) + self.assertAlmostEqual( + param.evaluate(param[name](*value[0])), value[1], places=4 + ) if __name__ == "__main__": diff --git a/tests/unit/test_parameters/test_parameter_sets/test_UMBL_Mohtat2020.py b/tests/unit/test_parameters/test_parameter_sets/test_UMBL_Mohtat2020.py deleted file mode 100644 index c9ec41cb28..0000000000 --- a/tests/unit/test_parameters/test_parameter_sets/test_UMBL_Mohtat2020.py +++ /dev/null @@ -1,60 +0,0 @@ -# -# Tests for LG M50 parameter set loads -# -import pybamm -import unittest - - -class TestMohtat(unittest.TestCase): - def test_load_params(self): - negative_electrode = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/" - + "negative_electrodes/graphite_UMBL_Mohtat2020/parameters.csv" - ) - ) - self.assertEqual(negative_electrode["Negative electrode porosity"], "0.3") - - positive_electrode = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/" - + "positive_electrodes/NMC_UMBL_Mohtat2020/parameters.csv" - ) - ) - self.assertEqual(positive_electrode["Positive electrode porosity"], "0.3") - - electrolyte = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/electrolytes/LiPF6_Mohtat2020/" - + "parameters.csv" - ) - ) - self.assertEqual(electrolyte["Cation transference number"], "0.38") - - cell = pybamm.ParameterValues({}).read_parameters_csv( - pybamm.get_parameters_filepath( - "input/parameters/lithium_ion/cells/UMBL_Mohtat2020/parameters.csv" - ) - ) - self.assertAlmostEqual( - cell["Negative current collector thickness [m]"], 2.5e-05 - ) - - def test_standard_lithium_parameters(self): - - parameter_values = pybamm.ParameterValues("Mohtat2020") - - model = pybamm.lithium_ion.DFN() - sim = pybamm.Simulation(model, parameter_values=parameter_values) - sim.set_parameters() - sim.build() - - -if __name__ == "__main__": - print("Add -v for more debug output") - import sys - - if "-v" in sys.argv: - debug = True - pybamm.settings.debug_mode = True - unittest.main() diff --git a/tests/unit/test_parameters/test_parameter_sets/test_parameters_with_default_model.py b/tests/unit/test_parameters/test_parameter_sets/test_parameters_with_default_model.py new file mode 100644 index 0000000000..d3f25aad0e --- /dev/null +++ b/tests/unit/test_parameters/test_parameter_sets/test_parameters_with_default_model.py @@ -0,0 +1,44 @@ +# +# Tests each parameter set with the standard model associated with that parameter set +# +import pybamm +import unittest + + +class TestParameterValuesWithModel(unittest.TestCase): + def test_parameter_values_with_model(self): + param_to_model = { + "Ai2020": pybamm.lithium_ion.DFN( + {"particle mechanics": "swelling and cracking"} + ), + "Chen2020": pybamm.lithium_ion.DFN(), + "Chen2020_composite": pybamm.lithium_ion.DFN( + { + "particle phases": ("2", "1"), + "open circuit potential": (("single", "current sigmoid"), "single"), + } + ), + "Ecker2015": pybamm.lithium_ion.DFN(), + "Mohtat2020": pybamm.lithium_ion.DFN(), + "NCA_Kim2011": pybamm.lithium_ion.DFN(), + "ORegan2022": pybamm.lithium_ion.DFN(), + "Prada2013": pybamm.lithium_ion.DFN(), + "Ramadass2004": pybamm.lithium_ion.DFN(), + "Xu2019": pybamm.lithium_ion.DFN({"working electrode": "positive"}), + } + + # Loop over each parameter set, testing that parameters can be set + for param, model in param_to_model.items(): + with self.subTest(param=param): + parameter_values = pybamm.ParameterValues(param) + parameter_values.process_model(model) + + +if __name__ == "__main__": + print("Add -v for more debug output") + import sys + + if "-v" in sys.argv: + debug = True + pybamm.settings.debug_mode = True + unittest.main() diff --git a/tests/unit/test_parameters/test_update_parameter_sets_doc.py b/tests/unit/test_parameters/test_update_parameter_sets_doc.py deleted file mode 100644 index 996234b746..0000000000 --- a/tests/unit/test_parameters/test_update_parameter_sets_doc.py +++ /dev/null @@ -1,66 +0,0 @@ -""" -Tests for the update_parameter_sets_doc.py -""" -from pybamm.parameters.update_parameter_sets_doc import get_ps_dict, generate_ps_doc -import pybamm -import unittest - - -DOC = """ -Parameter sets from papers. The 'citation' entry provides a reference to the appropriate -paper in the file "pybamm/CITATIONS.txt". To see which parameter sets have been used in -your simulation, add the line "pybamm.print_citations()" to your script. - -Lead-acid parameter sets ------------------------- - * Sulzer2019 : - - Valentin Sulzer, S. Jon Chapman, Colin P. Please, David A. Howey, and Charles - W. Monroe. Faster Lead-Acid Battery Simulations from Porous-Electrode Theory: - Part I. Physical Model. Journal of The Electrochemical Society, - 166(12):A2363–A2371, 2019. doi:10.1149/2.0301910jes. - -Lithium-ion parameter sets --------------------------- - * Prada2013 : - - Chang-Hui Chen, Ferran Brosa Planella, Kieran O'Regan, Dominika Gastol, W. - Dhammika Widanage, and Emma Kendrick. Development of Experimental Techniques - for Parameterization of Multi-scale Lithium-ion Battery Models. Journal of The - Electrochemical Society, 167(8):080534, 2020. doi:10.1149/1945-7111/ab9050. - - Michael J. Lain, James Brandon, and Emma Kendrick. Design strategies for high - power vs. high energy lithium ion cells. Batteries, 5(4):64, 2019. - doi:10.3390/batteries5040064. - - Eric Prada, D. Di Domenico, Y. Creff, J. Bernard, Valérie Sauvant-Moynot, and - François Huet. A simplified electrochemical and thermal aging model of - LiFePO4-graphite Li-ion batteries: power and capacity fade simulations. Journal - of The Electrochemical Society, 160(4):A616, 2013. doi:10.1149/2.053304jes. -""" - -AUTHOR_YEAR_DICT = { - "lithium_ion": [ - ("Prada2013", ["Chen2020", "Lain2019", "Prada2013"]), - ], - "lead_acid": [("Sulzer2019", ["Sulzer2019physical"])], -} - - -class TestUpdateParameterSetsDoc(unittest.TestCase): - def test_get_ps_dict(self): - output = get_ps_dict() - for key, values in AUTHOR_YEAR_DICT.items(): - output_values = output.get(key, []) - for value in values: - self.assertIn(value, output_values) - - def test_generate_ps_doc(self): - output = generate_ps_doc(AUTHOR_YEAR_DICT) - self.assertEqual(output, DOC) - - -if __name__ == "__main__": - print("Add -v for more debug output") - import sys - - if "-v" in sys.argv: - debug = True - pybamm.settings.debug_mode = True - unittest.main() From a05ac2102eee7b61c080030d5dc94f90261c1d25 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Wed, 5 Oct 2022 18:01:12 -0400 Subject: [PATCH 13/28] #2334 tests --- CHANGELOG.md | 4 + examples/scripts/compare_lithium_ion.py | 2 +- parameters.py | 19 - pybamm/__init__.py | 2 +- pybamm/input/parameters/lithium_ion/Ai2020.py | 14 +- .../lithium_ion/Chen2020_composite.py | 10 +- .../input/parameters/lithium_ion/Ecker2015.py | 25 +- .../parameters/lithium_ion/NCA_Kim2011.py | 10 +- .../input/parameters/lithium_ion/OKane2022.py | 10 +- .../graphite_LGM50_ocp_Chen2020.csv | 0 .../{ => data}/graphite_ocp_Ecker2015.csv | 0 .../data/graphite_ocp_Enertech_Ai2020.csv | 129 +++++ .../lithium_ion/data/lico2_data_example.csv | 50 ++ .../lithium_ion/data/lico2_ocp_Ai2020.csv | 448 ++++++++++++++++++ ...easured_graphite_diffusivity_Ecker2015.csv | 0 .../measured_nco_diffusivity_Ecker2015.csv | 0 .../{ => data}/nca_ocp_Kim2011_data.csv | 0 .../{ => data}/nco_ocp_Ecker2015.csv | 0 .../README.md | 5 + .../__init__.py | 0 ...ctrolyte_TDF_EC_DMC_1_1_Landesfeind2019.py | 32 ++ .../electrolyte_base_Landesfeind2019.py | 155 ++++++ ...conductivity_EC_DMC_1_1_Landesfeind2019.py | 32 ++ ..._diffusivity_EC_DMC_1_1_Landesfeind2019.py | 32 ++ ...rence_number_EC_DMC_1_1_Landesfeind2019.py | 44 ++ .../parameters.csv | 10 + .../README.md | 5 + .../__init__.py | 0 ...ctrolyte_TDF_EC_EMC_3_7_Landesfeind2019.py | 32 ++ .../electrolyte_base_Landesfeind2019.py | 155 ++++++ ...conductivity_EC_EMC_3_7_Landesfeind2019.py | 32 ++ ..._diffusivity_EC_EMC_3_7_Landesfeind2019.py | 32 ++ ...rence_number_EC_EMC_3_7_Landesfeind2019.py | 44 ++ .../parameters.csv | 10 + .../README.md | 5 + .../__init__.py | 0 ...rolyte_TDF_EMC_FEC_19_1_Landesfeind2019.py | 32 ++ .../electrolyte_base_Landesfeind2019.py | 155 ++++++ ...nductivity_EMC_FEC_19_1_Landesfeind2019.py | 32 ++ ...iffusivity_EMC_FEC_19_1_Landesfeind2019.py | 32 ++ ...nce_number_EMC_FEC_19_1_Landesfeind2019.py | 34 ++ .../parameters.csv | 10 + .../lithium_ion/parameter_values_test.csv | 4 + .../lithium_ion/seis/example/README.md | 11 + .../lithium_ion/seis/example/parameters.csv | 28 ++ pybamm/parameters/__init__.py | 1 + pybamm/parameters/parameter_sets.py | 58 ++- pybamm/parameters/parameter_values.py | 53 +-- pybamm/parameters/process_parameter_data.py | 60 +++ .../test_parameter_sets/test_LCO_Ai2020.py | 1 - .../test_LCO_Ramadass2004.py | 1 - .../test_LGM50_ORegan2022.py | 1 - .../test_Landesfeind2019.py | 10 - .../test_parameter_sets/test_OKane2022.py | 1 - ...=> test_parameters_with_default_models.py} | 6 + .../test_parameters/test_parameter_values.py | 59 +-- tox.ini | 1 + 57 files changed, 1813 insertions(+), 125 deletions(-) delete mode 100644 parameters.py rename pybamm/input/parameters/lithium_ion/{ => data}/graphite_LGM50_ocp_Chen2020.csv (100%) rename pybamm/input/parameters/lithium_ion/{ => data}/graphite_ocp_Ecker2015.csv (100%) create mode 100644 pybamm/input/parameters/lithium_ion/data/graphite_ocp_Enertech_Ai2020.csv create mode 100644 pybamm/input/parameters/lithium_ion/data/lico2_data_example.csv create mode 100644 pybamm/input/parameters/lithium_ion/data/lico2_ocp_Ai2020.csv rename pybamm/input/parameters/lithium_ion/{ => data}/measured_graphite_diffusivity_Ecker2015.csv (100%) rename pybamm/input/parameters/lithium_ion/{ => data}/measured_nco_diffusivity_Ecker2015.csv (100%) rename pybamm/input/parameters/lithium_ion/{ => data}/nca_ocp_Kim2011_data.csv (100%) rename pybamm/input/parameters/lithium_ion/{ => data}/nco_ocp_Ecker2015.csv (100%) create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/README.md create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/__init__.py create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_TDF_EC_DMC_1_1_Landesfeind2019.py create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_conductivity_EC_DMC_1_1_Landesfeind2019.py create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_diffusivity_EC_DMC_1_1_Landesfeind2019.py create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_transference_number_EC_DMC_1_1_Landesfeind2019.py create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/parameters.csv create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/README.md create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/__init__.py create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_TDF_EC_EMC_3_7_Landesfeind2019.py create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_base_Landesfeind2019.py create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019.py create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019.py create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019.py create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/parameters.csv create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/README.md create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/__init__.py create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_TDF_EMC_FEC_19_1_Landesfeind2019.py create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_conductivity_EMC_FEC_19_1_Landesfeind2019.py create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_diffusivity_EMC_FEC_19_1_Landesfeind2019.py create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_transference_number_EMC_FEC_19_1_Landesfeind2019.py create mode 100644 pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/parameters.csv create mode 100644 pybamm/input/parameters/lithium_ion/parameter_values_test.csv create mode 100644 pybamm/input/parameters/lithium_ion/seis/example/README.md create mode 100644 pybamm/input/parameters/lithium_ion/seis/example/parameters.csv create mode 100644 pybamm/parameters/process_parameter_data.py rename tests/unit/test_parameters/test_parameter_sets/{test_parameters_with_default_model.py => test_parameters_with_default_models.py} (87%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c2c65ce0b..f35c2c6b5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # [Unreleased](https://github.com/pybamm-team/PyBaMM/) +## Breaking change + +- Parameter sets should now be provided as single python files containing all parameters and functions. Parameters provided as "data" (e.g. OCP vs SOC) can still be csv files, but must be either in the same folder as the parameter file or in a subfolder called "data/" + # [v22.9](https://github.com/pybamm-team/PyBaMM/tree/v22.9) - 2022-09-30 ## Features diff --git a/examples/scripts/compare_lithium_ion.py b/examples/scripts/compare_lithium_ion.py index c528cc67b4..6108036b9b 100644 --- a/examples/scripts/compare_lithium_ion.py +++ b/examples/scripts/compare_lithium_ion.py @@ -16,7 +16,7 @@ # create and run simulations sims = [] for model in models: - sim = pybamm.Simulation(model, parameter_values=pybamm.ParameterValues("Ai2020")) + sim = pybamm.Simulation(model) sim.solve([0, 3600]) sims.append(sim) diff --git a/parameters.py b/parameters.py deleted file mode 100644 index b8b876bf6a..0000000000 --- a/parameters.py +++ /dev/null @@ -1,19 +0,0 @@ -import pybamm -import subprocess - -all_parameter_sets = [x for x in dir(pybamm.parameter_sets) if not x.startswith("__")] - -for name in all_parameter_sets: - if name == "Sulzer2019": - relpath = "pybamm/input/parameters/lead_acid/" - else: - relpath = "pybamm/input/parameters/lithium_ion/" - parameter_values = pybamm.ParameterValues(getattr(pybamm.parameter_sets, name)) - parameter_values.export_python_script(name, path=relpath) - - # test that loading the parameter set works - pybamm.ParameterValues(name) - - print(f"{name}: ok") - -subprocess.run(["black", "."]) diff --git a/pybamm/__init__.py b/pybamm/__init__.py index 6754557e72..608bc81b15 100644 --- a/pybamm/__init__.py +++ b/pybamm/__init__.py @@ -162,7 +162,7 @@ from .parameters.lithium_ion_parameters import LithiumIonParameters from .parameters.lead_acid_parameters import LeadAcidParameters from .parameters.size_distribution_parameters import * -from .parameters import parameter_sets +from .parameters.parameter_sets import parameter_sets # # Mesh and Discretisation classes diff --git a/pybamm/input/parameters/lithium_ion/Ai2020.py b/pybamm/input/parameters/lithium_ion/Ai2020.py index 5cb1c0450c..441c11983d 100644 --- a/pybamm/input/parameters/lithium_ion/Ai2020.py +++ b/pybamm/input/parameters/lithium_ion/Ai2020.py @@ -1,4 +1,5 @@ import pybamm +import os def graphite_diffusivity_Dualfoil1998(sto, T): @@ -495,6 +496,14 @@ def electrolyte_conductivity_Ai2020(c_e, T): return sigma_e +# Load data in the appropriate format +path, _ = os.path.split(os.path.abspath(__file__)) +graphite_ocp_Enertech_Ai2020 = pybamm.parameters.process_1D_data( + "graphite_ocp_Enertech_Ai2020.csv", path=path +) +lico2_ocp_Ai2020 = pybamm.parameters.process_1D_data("lico2_ocp_Ai2020.csv", path=path) + + # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ @@ -503,7 +512,6 @@ def get_parameter_values(): > Ai, W., Kraft, L., Sturm, J., Jossen, A., & Wu, B. (2020). Electrochemical Thermal-Mechanical Modelling of Stress Inhomogeneity in Lithium-Ion Pouch Cells. Journal of The Electrochemical Society, 167(1), 013512. DOI: 10.1149/2.0122001JES. - > Rieger, B., Erhard, S. V., Rumpf, K., & Jossen, A. (2016). A new method to model the thickness change of a commercial pouch cell during discharge. Journal of The Electrochemical Society, 163(8), A1566-A1575. @@ -584,7 +592,7 @@ def get_parameter_values(): "Negative electrode conductivity [S.m-1]": 100.0, "Maximum concentration in negative electrode [mol.m-3]": 28700.0, "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_Dualfoil1998, - "Negative electrode OCP [V]": "[data]graphite_ocp_Enertech_Ai2020", + "Negative electrode OCP [V]": graphite_ocp_Enertech_Ai2020, "Negative electrode porosity": 0.33, "Negative electrode active material volume fraction": 0.61, "Negative particle radius [m]": 5e-06, @@ -621,7 +629,7 @@ def get_parameter_values(): "Positive electrode conductivity [S.m-1]": 10.0, "Maximum concentration in positive electrode [mol.m-3]": 49943.0, "Positive electrode diffusivity [m2.s-1]": lico2_diffusivity_Dualfoil1998, - "Positive electrode OCP [V]": "[data]lico2_ocp_Ai2020", + "Positive electrode OCP [V]": lico2_ocp_Ai2020, "Positive electrode porosity": 0.32, "Positive electrode active material volume fraction": 0.62, "Positive particle radius [m]": 3e-06, diff --git a/pybamm/input/parameters/lithium_ion/Chen2020_composite.py b/pybamm/input/parameters/lithium_ion/Chen2020_composite.py index f2755529a1..5e4fca25bb 100644 --- a/pybamm/input/parameters/lithium_ion/Chen2020_composite.py +++ b/pybamm/input/parameters/lithium_ion/Chen2020_composite.py @@ -1,4 +1,5 @@ import pybamm +import os def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( @@ -305,6 +306,13 @@ def electrolyte_conductivity_Nyman2008(c_e, T): return sigma_e +# Load data in the appropriate format +path, _ = os.path.split(os.path.abspath(__file__)) +graphite_ocp_Enertech_Ai2020 = pybamm.parameters.process_1D_data( + "graphite_ocp_Enertech_Ai2020.csv", path=path +) + + # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ @@ -383,7 +391,7 @@ def get_parameter_values(): "Primary: Maximum concentration in negative electrode [mol.m-3]": 28700.0, "Primary: Initial concentration in negative electrode [mol.m-3]": 27700.0, "Primary: Negative electrode diffusivity [m2.s-1]": 5.5e-14, - "Primary: Negative electrode OCP [V]": "[data]graphite_ocp_Enertech_Ai2020", + "Primary: Negative electrode OCP [V]": graphite_ocp_Enertech_Ai2020, "Negative electrode porosity": 0.25, "Primary: Negative electrode active material volume fraction": 0.735, "Primary: Negative particle radius [m]": 5.86e-06, diff --git a/pybamm/input/parameters/lithium_ion/Ecker2015.py b/pybamm/input/parameters/lithium_ion/Ecker2015.py index ccb7602f43..14e54be33a 100644 --- a/pybamm/input/parameters/lithium_ion/Ecker2015.py +++ b/pybamm/input/parameters/lithium_ion/Ecker2015.py @@ -1,4 +1,5 @@ import pybamm +import os def graphite_diffusivity_Ecker2015(sto, T): @@ -382,6 +383,22 @@ def electrolyte_conductivity_Ecker2015(c_e, T): return sigma_e +# Load data in the appropriate format +path, _ = os.path.split(os.path.abspath(__file__)) +measured_graphite_diffusivity_Ecker2015 = pybamm.parameters.process_1D_data( + "measured_graphite_diffusivity_Ecker2015.csv", path=path +) +graphite_ocp_Ecker2015 = pybamm.parameters.process_1D_data( + "graphite_ocp_Ecker2015.csv", path=path +) +measured_nco_diffusivity_Ecker2015 = pybamm.parameters.process_1D_data( + "measured_nco_diffusivity_Ecker2015.csv", path=path +) +nco_ocp_Ecker2015 = pybamm.parameters.process_1D_data( + "nco_ocp_Ecker2015.csv", path=path +) + + # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ @@ -494,9 +511,9 @@ def get_parameter_values(): "Negative electrode conductivity [S.m-1]": 14.0, "Maximum concentration in negative electrode [mol.m-3]": 31920.0, "Measured negative electrode diffusivity [m2.s-1]" - "": "[data]measured_graphite_diffusivity_Ecker2015", + "": measured_graphite_diffusivity_Ecker2015, "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_Ecker2015, - "Measured negative electrode OCP [V]": "[data]graphite_ocp_Ecker2015", + "Measured negative electrode OCP [V]": graphite_ocp_Ecker2015, "Negative electrode OCP [V]": graphite_ocp_Ecker2015_function, "Negative electrode porosity": 0.329, "Negative electrode active material volume fraction": 0.372403, @@ -515,9 +532,9 @@ def get_parameter_values(): "Positive electrode conductivity [S.m-1]": 68.1, "Maximum concentration in positive electrode [mol.m-3]": 48580.0, "Measured positive electrode diffusivity [m2.s-1]" - "": "[data]measured_nco_diffusivity_Ecker2015", + "": measured_nco_diffusivity_Ecker2015, "Positive electrode diffusivity [m2.s-1]": nco_diffusivity_Ecker2015, - "Measured positive electrode OCP [V]": "[data]nco_ocp_Ecker2015", + "Measured positive electrode OCP [V]": nco_ocp_Ecker2015, "Positive electrode OCP [V]": nco_ocp_Ecker2015_function, "Positive electrode porosity": 0.296, "Positive electrode active material volume fraction": 0.40832, diff --git a/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py b/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py index 8baee0f3e5..07a3f22182 100644 --- a/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py +++ b/pybamm/input/parameters/lithium_ion/NCA_Kim2011.py @@ -1,4 +1,5 @@ import pybamm +import os def graphite_diffusivity_Kim2011(sto, T): @@ -259,6 +260,13 @@ def electrolyte_conductivity_Kim2011(c_e, T): return sigma_e +# Load data in the appropriate format +path, _ = os.path.split(os.path.abspath(__file__)) +nca_ocp_Kim2011_data = pybamm.parameters.process_1D_data( + "nca_ocp_Kim2011_data.csv", path=path +) + + # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ @@ -375,7 +383,7 @@ def get_parameter_values(): "Positive electrode conductivity [S.m-1]": 10.0, "Maximum concentration in positive electrode [mol.m-3]": 49000.0, "Positive electrode diffusivity [m2.s-1]": nca_diffusivity_Kim2011, - "Positive electrode OCP [V]": "[data]nca_ocp_Kim2011_data", + "Positive electrode OCP [V]": nca_ocp_Kim2011_data, "Positive electrode porosity": 0.4, "Positive electrode active material volume fraction": 0.41, "Positive particle radius [m]": 1.633e-06, diff --git a/pybamm/input/parameters/lithium_ion/OKane2022.py b/pybamm/input/parameters/lithium_ion/OKane2022.py index 6139590942..87a119f34a 100644 --- a/pybamm/input/parameters/lithium_ion/OKane2022.py +++ b/pybamm/input/parameters/lithium_ion/OKane2022.py @@ -1,4 +1,5 @@ import pybamm +import os def plating_exchange_current_density_OKane2020(c_e, c_Li, T): @@ -484,6 +485,13 @@ def electrolyte_conductivity_Nyman2008_arrhenius(c_e, T): return sigma_e * arrhenius +# Load data in the appropriate format +path, _ = os.path.split(os.path.abspath(__file__)) +graphite_LGM50_ocp_Chen2020 = pybamm.parameters.process_1D_data( + "graphite_LGM50_ocp_Chen2020.csv", path=path +) + + # Call dict via a function to avoid errors when editing in place def get_parameter_values(): """ @@ -572,7 +580,7 @@ def get_parameter_values(): "Negative electrode conductivity [S.m-1]": 215.0, "Maximum concentration in negative electrode [mol.m-3]": 33133.0, "Negative electrode diffusivity [m2.s-1]": graphite_LGM50_diffusivity_Chen2020, - "Negative electrode OCP [V]": "[data]graphite_LGM50_ocp_Chen2020", + "Negative electrode OCP [V]": graphite_LGM50_ocp_Chen2020, "Negative electrode porosity": 0.25, "Negative electrode active material volume fraction": 0.75, "Negative particle radius [m]": 5.86e-06, diff --git a/pybamm/input/parameters/lithium_ion/graphite_LGM50_ocp_Chen2020.csv b/pybamm/input/parameters/lithium_ion/data/graphite_LGM50_ocp_Chen2020.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/graphite_LGM50_ocp_Chen2020.csv rename to pybamm/input/parameters/lithium_ion/data/graphite_LGM50_ocp_Chen2020.csv diff --git a/pybamm/input/parameters/lithium_ion/graphite_ocp_Ecker2015.csv b/pybamm/input/parameters/lithium_ion/data/graphite_ocp_Ecker2015.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/graphite_ocp_Ecker2015.csv rename to pybamm/input/parameters/lithium_ion/data/graphite_ocp_Ecker2015.csv diff --git a/pybamm/input/parameters/lithium_ion/data/graphite_ocp_Enertech_Ai2020.csv b/pybamm/input/parameters/lithium_ion/data/graphite_ocp_Enertech_Ai2020.csv new file mode 100644 index 0000000000..8a5bce2874 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/data/graphite_ocp_Enertech_Ai2020.csv @@ -0,0 +1,129 @@ +# OCP for graphite from Ai 2020 +# sto,ocp [V] +# extra point to avoid extrapolation +0,3.5 +# experimentally measured data +0.0005,3 +0.00127041,1.04 +0.00152479,1.01 +0.00190595,0.972653837 +0.002223558,0.94249055 +0.004060547,0.816240592 +0.004820151,0.780280928 +0.006463943,0.71896262 +0.00741337,0.691374757 +0.008616506,0.661391781 +0.009123417,0.649962232 +0.010768226,0.6165173 +0.012665046,0.583310858 +0.014118344,0.560830783 +0.017786752,0.512439476 +0.02069469,0.48025136 +0.023983799,0.448495867 +0.030502175,0.39598881 +0.036001135,0.359507681 +0.039606662,0.338477981 +0.059148083,0.256319558 +0.061297942,0.25117361 +0.071349833,0.236055324 +0.080265526,0.231009217 +0.119208079,0.2232966 +0.128120548,0.218284244 +0.134253707,0.213273859 +0.141584594,0.208228362 +0.150874177,0.203209739 +0.160609131,0.198620985 +0.170345957,0.193816376 +0.189747769,0.184166915 +0.209222253,0.176790532 +0.21901773,0.173830441 +0.228756579,0.170963261 +0.238552575,0.167903501 +0.248349231,0.164649979 +0.258084023,0.161491332 +0.267821184,0.15859383 +0.28741535,0.153399157 +0.297209811,0.151002319 +0.307004942,0.14886213 +0.316798396,0.146918911 +0.326534032,0.145328142 +0.336321558,0.144002109 +0.346061758,0.142902125 +0.355856392,0.142014262 +0.365593044,0.141316008 +0.375388012,0.140759105 +0.385120781,0.140314323 +0.394915577,0.139942322 +0.404717479,0.139617851 +0.414512102,0.139325406 +0.424244871,0.139051014 +0.434039331,0.138779297 +0.44377024,0.138517413 +0.453564862,0.138258897 +0.463298139,0.137981293 +0.473034456,0.137672226 +0.482766544,0.137329325 +0.492564552,0.136903224 +0.502302892,0.136390244 +0.512042595,0.135757581 +0.521833161,0.134947101 +0.531572182,0.133923235 +0.541369033,0.132621681 +0.551104831,0.130989474 +0.5608998,0.128964924 +0.570635608,0.126549987 +0.580434806,0.123742878 +0.590235692,0.120770834 +0.599977407,0.117929634 +0.609716266,0.115379983 +0.619517822,0.113205423 +0.629313635,0.111366477 +0.639049108,0.109855495 +0.648790152,0.108578952 +0.658584104,0.107520678 +0.668320248,0.106632536 +0.67805504,0.105893758 +0.687851869,0.105260613 +0.69764938,0.104713189 +0.707389072,0.104254365 +0.717188097,0.103845625 +0.726977148,0.103477119 +0.736776336,0.103153932 +0.746515866,0.102856541 +0.756259106,0.102587443 +0.766055091,0.102338279 +0.775789039,0.102101986 +0.785537861,0.101880905 +0.79532979,0.101676423 +0.805080646,0.101465878 +0.814827099,0.101264171 +0.824570003,0.101062635 +0.834370889,0.10087041 +0.844173289,0.10068096 +0.853913187,0.100489223 +0.86365051,0.100300437 +0.873392073,0.100099718 +0.883126865,0.099877104 +0.892918286,0.099628985 +0.902708516,0.099332616 +0.912443308,0.098958419 +0.922232533,0.098442542 +0.932019724,0.097683643 +0.941812832,0.096492 +0.951602392,0.094510791 +0.961392795,0.091136817 +0.970177652,0.086115186 +0.976051358,0.081078748 +0.980413449,0.07604037 +0.983887804,0.070991535 +0.986792703,0.065898328 +0.989255096,0.060844047 +0.991401407,0.055810118 +0.993359929,0.050670698 +0.995130154,0.045562401 +0.996776304,0.040392663 +0.99822944,0.035261272 +0.999241066,0.030242658 +0.999746961,0.024850768 +0.999936448,0.019251502 +1,0.004994678 \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/data/lico2_data_example.csv b/pybamm/input/parameters/lithium_ion/data/lico2_data_example.csv new file mode 100644 index 0000000000..5f2f5fef15 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/data/lico2_data_example.csv @@ -0,0 +1,50 @@ +0.000000000000000000e+00, 4.714135898019971016e+00 +2.040816326530612082e-02, 4.708899441575220557e+00 +4.081632653061224164e-02, 4.702448345762175741e+00 +6.122448979591836593e-02, 4.694558534379876136e+00 +8.163265306122448328e-02, 4.684994372928071193e+00 +1.020408163265306006e-01, 4.673523893805322516e+00 +1.224489795918367319e-01, 4.659941254449398329e+00 +1.428571428571428492e-01, 4.644096031712390271e+00 +1.632653061224489666e-01, 4.625926611260677390e+00 +1.836734693877550839e-01, 4.605491824833229053e+00 +2.040816326530612013e-01, 4.582992038370575116e+00 +2.244897959183673186e-01, 4.558769704421606228e+00 +2.448979591836734637e-01, 4.533281647154224103e+00 +2.653061224489795533e-01, 4.507041620859735254e+00 +2.857142857142856984e-01, 4.480540404981123714e+00 +3.061224489795917880e-01, 4.454158468368703439e+00 +3.265306122448979331e-01, 4.428089899175588151e+00 +3.469387755102040782e-01, 4.402295604083254155e+00 +3.673469387755101678e-01, 4.376502631465185367e+00 +3.877551020408163129e-01, 4.350272100879827519e+00 +4.081632653061224025e-01, 4.323179536958428493e+00 +4.285714285714285476e-01, 4.295195829713853719e+00 +4.489795918367346372e-01, 4.267407675466301065e+00 +4.693877551020407823e-01, 4.243081968022011985e+00 +4.897959183673469274e-01, 4.220583168834260768e+00 +5.102040816326530726e-01, 4.177032236370062712e+00 +5.306122448979591066e-01, 4.134943568540559333e+00 +5.510204081632652517e-01, 4.075402582839823928e+00 +5.714285714285713969e-01, 4.055407164381796825e+00 +5.918367346938775420e-01, 4.036052896449991323e+00 +6.122448979591835760e-01, 4.012970397550268409e+00 +6.326530612244897211e-01, 3.990385577539371287e+00 +6.530612244897958663e-01, 3.970744780585252709e+00 +6.734693877551020114e-01, 3.954753574690877738e+00 +6.938775510204081565e-01, 3.942237451863396025e+00 +7.142857142857141906e-01, 3.932683425747200534e+00 +7.346938775510203357e-01, 3.925509771581312979e+00 +7.551020408163264808e-01, 3.920182838859009422e+00 +7.755102040816326259e-01, 3.916256861206461881e+00 +7.959183673469386600e-01, 3.913378070528176877e+00 +8.163265306122448051e-01, 3.911274218446639583e+00 +8.367346938775509502e-01, 3.909739285381772067e+00 +8.571428571428570953e-01, 3.908613829807601192e+00 +8.775510204081632404e-01, 3.907726324580658162e+00 +8.979591836734692745e-01, 3.906474088522892796e+00 +9.183673469387754196e-01, 3.900204875423951556e+00 +9.387755102040815647e-01, 3.848912814816038974e+00 +9.591836734693877098e-01, 3.445226042113884724e+00 +9.795918367346938549e-01, 1.687177743081021308e+00 +1.000000000000000000e+00, 6.378908986260003328e-03 diff --git a/pybamm/input/parameters/lithium_ion/data/lico2_ocp_Ai2020.csv b/pybamm/input/parameters/lithium_ion/data/lico2_ocp_Ai2020.csv new file mode 100644 index 0000000000..ffd7886e2b --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/data/lico2_ocp_Ai2020.csv @@ -0,0 +1,448 @@ +# OCP for lico2 from Rieger 2016 +# stoichiometry , OCP [V] +0.43,4.3 +0.436639784,4.279907753 +0.437906143,4.276472669 +0.439172502,4.273800938 +0.44043886,4.271129206 +0.441705219,4.268648313 +0.442971578,4.266167419 +0.444237937,4.263686526 +0.445504296,4.261205633 +0.446770655,4.258724739 +0.448037014,4.256243846 +0.449303373,4.253762952 +0.450569732,4.251282059 +0.45183609,4.248992003 +0.453102449,4.24651111 +0.454368808,4.244221054 +0.455635167,4.24174016 +0.456901526,4.239259267 +0.458167885,4.236969211 +0.459434244,4.234679156 +0.460700603,4.232198262 +0.461966961,4.229717369 +0.46323332,4.227236475 +0.464499679,4.225137258 +0.465766038,4.222656364 +0.467032397,4.220366309 +0.468298756,4.217885415 +0.469565115,4.21559536 +0.470831474,4.213305304 +0.472097833,4.211015249 +0.473364191,4.208534355 +0.47463055,4.2062443 +0.475896909,4.203954244 +0.477163268,4.201664189 +0.478429627,4.199374133 +0.479695986,4.197084078 +0.480962345,4.194794022 +0.482228704,4.192503967 +0.483495063,4.190213911 +0.484761421,4.187923856 +0.48602778,4.185824638 +0.487294139,4.183534582 +0.488560498,4.181053689 +0.489826857,4.178954471 +0.491093216,4.176855254 +0.492359575,4.174565198 +0.493625934,4.172275143 +0.494892292,4.169985087 +0.496158651,4.16788587 +0.49742501,4.165786652 +0.498691369,4.163687435 +0.499957728,4.161588217 +0.501224087,4.159298161 +0.502490446,4.157389782 +0.503756805,4.155290564 +0.505023163,4.153191347 +0.506289522,4.151092129 +0.507555881,4.148992912 +0.50882224,4.146893694 +0.510088599,4.144794476 +0.511354958,4.142504421 +0.512621317,4.140405203 +0.513887676,4.138305986 +0.515154035,4.136206768 +0.516420393,4.134107551 +0.517686752,4.131817495 +0.518953111,4.129718278 +0.52021947,4.12761906 +0.521485829,4.125519842 +0.522752188,4.123229787 +0.524018547,4.121130569 +0.525284906,4.11922219 +0.526551264,4.116932134 +0.527817622,4.115023755 +0.52908398,4.112733699 +0.530350338,4.110634481 +0.531616697,4.108726102 +0.532883056,4.106817722 +0.534149415,4.104718505 +0.535415774,4.102619287 +0.536682133,4.100901745 +0.537948492,4.09861169 +0.539214851,4.09670331 +0.54048121,4.094985769 +0.541747568,4.092886551 +0.543013927,4.090978171 +0.544280286,4.089069792 +0.545546645,4.08735225 +0.546813004,4.085443871 +0.548079363,4.083535491 +0.549345722,4.081817949 +0.550612081,4.07990957 +0.551878439,4.078192028 +0.553144798,4.076474486 +0.554411157,4.074566107 +0.555677516,4.072848565 +0.556943875,4.071131024 +0.558210234,4.069413482 +0.559476593,4.06769594 +0.560742952,4.065978399 +0.562009311,4.064451695 +0.563275669,4.062734153 +0.564542028,4.06120745 +0.565808387,4.05929907 +0.567074746,4.057772366 +0.568341105,4.056054825 +0.569607464,4.054528121 +0.570873823,4.052810579 +0.572140182,4.051283876 +0.573406541,4.049566334 +0.574672899,4.04803963 +0.575939258,4.046322089 +0.577205617,4.044795385 +0.578471976,4.043268681 +0.579738335,4.04155114 +0.581004694,4.040024436 +0.582271053,4.038306894 +0.583537412,4.036971029 +0.58480377,4.035253487 +0.586070129,4.033726783 +0.587336488,4.03220008 +0.588602847,4.030673376 +0.589869206,4.029146672 +0.591135565,4.027619968 +0.592401924,4.026093265 +0.593668283,4.024566561 +0.594934642,4.023039857 +0.596201,4.021703992 +0.597467359,4.020177288 +0.598733718,4.018841422 +0.600000077,4.017314719 +0.601266436,4.015788015 +0.602532795,4.014261311 +0.603799154,4.012925445 +0.605065513,4.01158958 +0.606331872,4.010253714 +0.60759823,4.00872701 +0.608864589,4.007391145 +0.610130948,4.006055279 +0.611397307,4.004719413 +0.612663666,4.003383547 +0.613930025,4.001856844 +0.615196384,4.000711816 +0.616462743,3.99937595 +0.617729101,3.997849247 +0.61899546,3.996704219 +0.620261819,3.995368353 +0.621528178,3.994032487 +0.622794537,3.99288746 +0.624060896,3.991551594 +0.625327255,3.990215728 +0.626593614,3.9890707 +0.627859973,3.987734835 +0.629126331,3.986398969 +0.63039269,3.985253941 +0.631659049,3.984108913 +0.632925408,3.982773048 +0.634191767,3.98162802 +0.635458126,3.980292154 +0.636724485,3.979147126 +0.637990844,3.978192937 +0.639257202,3.976857071 +0.640523561,3.975712043 +0.64178992,3.974567015 +0.643056279,3.973421988 +0.644322638,3.97227696 +0.645588997,3.970941094 +0.646855356,3.969986904 +0.648121715,3.968841877 +0.649388074,3.967696849 +0.650654432,3.966742659 +0.651920791,3.965597631 +0.65318715,3.964452603 +0.654453509,3.963498414 +0.655719868,3.962353386 +0.656986227,3.961208358 +0.658252586,3.960254168 +0.659518945,3.959109141 +0.660785304,3.958154951 +0.662051662,3.957200761 +0.663318021,3.956055733 +0.66458438,3.955101543 +0.665850739,3.954147354 +0.667117098,3.953002326 +0.668383457,3.952048136 +0.669649816,3.951284784 +0.670916175,3.950139756 +0.672182533,3.949185567 +0.673448892,3.948231377 +0.674715251,3.947277187 +0.67598161,3.946513835 +0.677247969,3.945368807 +0.678514328,3.944605456 +0.679780687,3.943651266 +0.681047046,3.942697076 +0.682313405,3.941933724 +0.683579763,3.940979534 +0.684846122,3.940025344 +0.686112481,3.939261993 +0.68737884,3.938307803 +0.688645199,3.937544451 +0.689911568,3.936590261 +0.691177927,3.935826909 +0.692444286,3.93487272 +0.693710645,3.934109368 +0.694977004,3.933346016 +0.696243363,3.932582664 +0.697509722,3.931819312 +0.698776081,3.930865122 +0.700042439,3.930292608 +0.701308798,3.929338419 +0.702575157,3.928575067 +0.703841516,3.927811715 +0.705107875,3.927048363 +0.706374234,3.926285011 +0.707640593,3.925521659 +0.708906952,3.924949146 +0.71017331,3.924185794 +0.711439669,3.92361328 +0.712706028,3.922849928 +0.713972387,3.922086576 +0.715238746,3.921323224 +0.716505105,3.92075071 +0.717771464,3.919987359 +0.719037823,3.919224007 +0.720304182,3.918651493 +0.72157054,3.918078979 +0.722836899,3.917506465 +0.724103258,3.916933951 +0.725369617,3.916361437 +0.726635976,3.915788923 +0.727902335,3.915025572 +0.729168694,3.914643896 +0.730435053,3.913880544 +0.731701411,3.91330803 +0.73296777,3.912735516 +0.734234129,3.912163002 +0.735500488,3.911781326 +0.736766847,3.911208812 +0.738033206,3.910636298 +0.739299565,3.910063785 +0.740565924,3.909491271 +0.741832283,3.908918757 +0.743098641,3.908537081 +0.744365,3.908155405 +0.745631359,3.907582891 +0.746897718,3.907010377 +0.748164077,3.906628701 +0.749430436,3.906056187 +0.750696795,3.905865349 +0.751963154,3.905292836 +0.753229513,3.90491116 +0.754495871,3.904529484 +0.75576223,3.90395697 +0.757028589,3.903575294 +0.758294948,3.903193618 +0.759561307,3.902811942 +0.760827666,3.902621104 +0.762094025,3.902239428 +0.763360384,3.901857752 +0.764626742,3.901476076 +0.765893101,3.9010944 +0.76715946,3.900903562 +0.768425819,3.900521887 +0.769692178,3.900140211 +0.770958537,3.899949373 +0.772224896,3.899758535 +0.773491255,3.899376859 +0.774757613,3.899186021 +0.776023972,3.898995183 +0.777290331,3.898613507 +0.77855669,3.898422669 +0.779823049,3.898040993 +0.781089408,3.897850155 +0.782355767,3.897659317 +0.783622126,3.897468479 +0.784888485,3.897277641 +0.786154843,3.897086803 +0.787421202,3.896705127 +0.788687561,3.896705127 +0.78995392,3.896514289 +0.791220279,3.896323451 +0.792486638,3.896323451 +0.793752997,3.896132613 +0.795019356,3.895750938 +0.796285715,3.895750938 +0.797552073,3.8955601 +0.798818432,3.895369262 +0.800084791,3.895178424 +0.80135115,3.894987586 +0.802617509,3.894796748 +0.803883868,3.89460591 +0.805150227,3.89460591 +0.806416586,3.894415072 +0.807682944,3.894224234 +0.808949303,3.894033396 +0.810215662,3.894033396 +0.811482021,3.893842558 +0.81274838,3.89365172 +0.814014739,3.89365172 +0.815281098,3.893460882 +0.816547457,3.893270044 +0.817813816,3.893270044 +0.819080174,3.893079206 +0.820346533,3.892888368 +0.821612892,3.89269753 +0.822879251,3.89269753 +0.82414561,3.892506692 +0.825411969,3.892315854 +0.826678328,3.892125016 +0.827944687,3.891934178 +0.829211045,3.891934178 +0.830477404,3.89174334 +0.831743763,3.891552502 +0.833010122,3.891361664 +0.834276481,3.891170826 +0.83554284,3.890979989 +0.836809199,3.890979989 +0.838075558,3.890789151 +0.839341917,3.890598313 +0.840608275,3.890407475 +0.841874634,3.890216637 +0.843140993,3.890025799 +0.844407352,3.889834961 +0.845673711,3.889834961 +0.84694007,3.889644123 +0.848206429,3.889262447 +0.849472788,3.889071609 +0.850739146,3.888880771 +0.852005505,3.888689933 +0.853271864,3.888499095 +0.854538223,3.888308257 +0.855804582,3.888117419 +0.857070941,3.887735743 +0.8583373,3.887544905 +0.859603659,3.887354067 +0.860870018,3.887163229 +0.862136376,3.886972391 +0.863402735,3.886590715 +0.864669094,3.88620904 +0.865935453,3.886018202 +0.867201812,3.885827364 +0.868468171,3.885445688 +0.86973453,3.885064012 +0.871000889,3.884873174 +0.872267247,3.884491498 +0.873533606,3.88430066 +0.874799965,3.883918984 +0.876066324,3.883728146 +0.877332683,3.88334647 +0.878599042,3.882773956 +0.879865401,3.882583118 +0.88113176,3.882201442 +0.882398119,3.881819766 +0.883664477,3.88143809 +0.884930836,3.881056415 +0.886197195,3.880674739 +0.887463554,3.880102225 +0.888729913,3.879529711 +0.889996272,3.879148035 +0.891262631,3.878575521 +0.89252899,3.878193845 +0.893795349,3.877812169 +0.895061707,3.877239655 +0.896328066,3.876667141 +0.897594425,3.876094628 +0.898860784,3.875522114 +0.900127143,3.8749496 +0.901393502,3.874377086 +0.902659861,3.873613734 +0.90392622,3.87304122 +0.905192579,3.872468706 +0.906458937,3.871705354 +0.907725296,3.871132841 +0.908991655,3.870369489 +0.910258014,3.869415299 +0.911524373,3.868842785 +0.912790732,3.868079433 +0.914057091,3.867125243 +0.915323449,3.866171054 +0.916589808,3.865407702 +0.917856167,3.864453512 +0.919122526,3.863499322 +0.920388885,3.862545132 +0.921655244,3.861400105 +0.922921603,3.860255077 +0.924187962,3.859300887 +0.92545432,3.858155859 +0.926720679,3.856819994 +0.927987038,3.855674966 +0.929253397,3.854148262 +0.930519756,3.853003234 +0.931786115,3.851476531 +0.933052474,3.849949827 +0.934318833,3.848423123 +0.935585192,3.84689642 +0.93685155,3.84498804 +0.938117909,3.843270498 +0.939384268,3.841362119 +0.940650627,3.839262901 +0.941916986,3.837163684 +0.943183345,3.835064466 +0.944449704,3.832583573 +0.945716063,3.830102679 +0.946982421,3.827430948 +0.94824878,3.824759216 +0.949515139,3.821896647 +0.950781498,3.818843239 +0.952047857,3.815598994 +0.953314216,3.812163911 +0.954580575,3.808537989 +0.955846934,3.804912068 +0.957113293,3.800904471 +0.958379651,3.796896874 +0.95964601,3.792698439 +0.960912369,3.788309166 +0.962178728,3.783919893 +0.963445087,3.779148944 +0.964711446,3.774568832 +0.965977805,3.769607045 +0.967244164,3.765026934 +0.968510523,3.760065147 +0.969776881,3.75510336 +0.97104324,3.750141573 +0.972309599,3.745179786 +0.973575958,3.740217999 +0.974842317,3.735065375 +0.976108676,3.72991275 +0.977375035,3.724760125 +0.978641394,3.719416662 +0.979907752,3.713882361 +0.981174111,3.708157222 +0.98244047,3.702241245 +0.983706829,3.696134431 +0.984973188,3.689455102 +0.986239547,3.682394097 +0.987505906,3.674760579 +0.988772265,3.666363709 +0.990038623,3.656630973 +0.991304982,3.645562371 +0.992571341,3.632203714 +0.9938377,3.615219135 +0.995104059,3.591936904 +0.996370418,3.557204395 +0.997636777,3.501098035 +0.998903136,3.4089233 diff --git a/pybamm/input/parameters/lithium_ion/measured_graphite_diffusivity_Ecker2015.csv b/pybamm/input/parameters/lithium_ion/data/measured_graphite_diffusivity_Ecker2015.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/measured_graphite_diffusivity_Ecker2015.csv rename to pybamm/input/parameters/lithium_ion/data/measured_graphite_diffusivity_Ecker2015.csv diff --git a/pybamm/input/parameters/lithium_ion/measured_nco_diffusivity_Ecker2015.csv b/pybamm/input/parameters/lithium_ion/data/measured_nco_diffusivity_Ecker2015.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/measured_nco_diffusivity_Ecker2015.csv rename to pybamm/input/parameters/lithium_ion/data/measured_nco_diffusivity_Ecker2015.csv diff --git a/pybamm/input/parameters/lithium_ion/nca_ocp_Kim2011_data.csv b/pybamm/input/parameters/lithium_ion/data/nca_ocp_Kim2011_data.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/nca_ocp_Kim2011_data.csv rename to pybamm/input/parameters/lithium_ion/data/nca_ocp_Kim2011_data.csv diff --git a/pybamm/input/parameters/lithium_ion/nco_ocp_Ecker2015.csv b/pybamm/input/parameters/lithium_ion/data/nco_ocp_Ecker2015.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/nco_ocp_Ecker2015.csv rename to pybamm/input/parameters/lithium_ion/data/nco_ocp_Ecker2015.csv diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/README.md b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/README.md new file mode 100644 index 0000000000..07aa16c3ab --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/README.md @@ -0,0 +1,5 @@ +# LiPF6 in EC:DMC (1:1 w:w) electrolyte parameters + +Parameters for a LiPF6 in EC:DMC (1:1 w:w) electrolyte, from the paper + +> Johannes Landesfeind and Hubert A. Gasteiger, ["Temperature and Concentration Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes."](https://iopscience.iop.org/article/10.1149/2.0571912jes) Journal of the Electrochemical Society 166 (2019): A3079. diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/__init__.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_TDF_EC_DMC_1_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_TDF_EC_DMC_1_1_Landesfeind2019.py new file mode 100644 index 0000000000..a9757c5526 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_TDF_EC_DMC_1_1_Landesfeind2019.py @@ -0,0 +1,32 @@ +from .electrolyte_base_Landesfeind2019 import electrolyte_TDF_base_Landesfeind2019 +import numpy as np + + +def electrolyte_TDF_EC_DMC_1_1_Landesfeind2019(c_e, T): + """ + Thermodynamic factor (TDF) of LiPF6 in EC:DMC (1:1 w:w) as a function of ion + concentration and temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte thermodynamic factor + """ + coeffs = np.array( + [-5.58, 7.17, 3.80e-2, 1.91, -6.65e-2, -5.08e-5, 1.1e-1, -6.10e-3, 1.51e-4] + ) + + return electrolyte_TDF_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py new file mode 100644 index 0000000000..3f67f6051e --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py @@ -0,0 +1,155 @@ +from pybamm import exp, sqrt + + +def electrolyte_conductivity_base_Landesfeind2019(c_e, T, coeffs): + """ + Conductivity of LiPF6 in solvent_X as a function of ion concentration and + temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + coeffs: :class:`pybamm.Symbol` + Fitting parameter coefficients + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte conductivity + """ + c = c_e / 1000 # mol.m-3 -> mol.l + p1, p2, p3, p4, p5, p6 = coeffs + A = p1 * (1 + (T - p2)) + B = 1 + p3 * sqrt(c) + p4 * (1 + p5 * exp(1000 / T)) * c + C = 1 + c**4 * (p6 * exp(1000 / T)) + sigma_e = A * c * B / C # mS.cm-1 + + return sigma_e / 10 + + +def electrolyte_diffusivity_base_Landesfeind2019(c_e, T, coeffs): + """ + Diffusivity of LiPF6 in solvent_X as a function of ion concentration and + temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + coeffs: :class:`pybamm.Symbol` + Fitting parameter coefficients + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte diffusivity + """ + c = c_e / 1000 # mol.m-3 -> mol.l + p1, p2, p3, p4 = coeffs + A = p1 * exp(p2 * c) + B = exp(p3 / T) + C = exp(p4 * c / T) + D_e = A * B * C * 1e-10 # m2/s + + return D_e + + +def electrolyte_TDF_base_Landesfeind2019(c_e, T, coeffs): + """ + Thermodynamic factor (TDF) of LiPF6 in solvent_X as a function of ion concentration + and temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + coeffs: :class:`pybamm.Symbol` + Fitting parameter coefficients + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte thermodynamic factor + """ + c = c_e / 1000 # mol.m-3 -> mol.l + p1, p2, p3, p4, p5, p6, p7, p8, p9 = coeffs + tdf = ( + p1 + + p2 * c + + p3 * T + + p4 * c**2 + + p5 * c * T + + p6 * T**2 + + p7 * c**3 + + p8 * c**2 * T + + p9 * c * T**2 + ) + + return tdf + + +def electrolyte_transference_number_base_Landesfeind2019(c_e, T, coeffs): + """ + Transference number of LiPF6 in solvent_X as a function of ion concentration and + temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + coeffs: :class:`pybamm.Symbol` + Fitting parameter coefficients + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte transference number + """ + c = c_e / 1000 # mol.m-3 -> mol.l + p1, p2, p3, p4, p5, p6, p7, p8, p9 = coeffs + tplus = ( + p1 + + p2 * c + + p3 * T + + p4 * c**2 + + p5 * c * T + + p6 * T**2 + + p7 * c**3 + + p8 * c**2 * T + + p9 * c * T**2 + ) + + return tplus diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_conductivity_EC_DMC_1_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_conductivity_EC_DMC_1_1_Landesfeind2019.py new file mode 100644 index 0000000000..af69241f1c --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_conductivity_EC_DMC_1_1_Landesfeind2019.py @@ -0,0 +1,32 @@ +from .electrolyte_base_Landesfeind2019 import ( + electrolyte_conductivity_base_Landesfeind2019, +) +import numpy as np + + +def electrolyte_conductivity_EC_DMC_1_1_Landesfeind2019(c_e, T): + """ + Conductivity of LiPF6 in EC:DMC (1:1 w:w) as a function of ion concentration and + temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte conductivity + """ + coeffs = np.array([7.98e-1, 2.28e2, -1.22, 5.09e-1, -4e-3, 3.79e-3]) + + return electrolyte_conductivity_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_diffusivity_EC_DMC_1_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_diffusivity_EC_DMC_1_1_Landesfeind2019.py new file mode 100644 index 0000000000..b8a655ef29 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_diffusivity_EC_DMC_1_1_Landesfeind2019.py @@ -0,0 +1,32 @@ +from .electrolyte_base_Landesfeind2019 import ( + electrolyte_diffusivity_base_Landesfeind2019, +) +import numpy as np + + +def electrolyte_diffusivity_EC_DMC_1_1_Landesfeind2019(c_e, T): + """ + Diffusivity of LiPF6 in EC:DMC (1:1 w:w) as a function of ion concentration and + temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte diffusivity + """ + coeffs = np.array([1.47e3, 1.33, -1.69e3, -5.63e2]) + + return electrolyte_diffusivity_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_transference_number_EC_DMC_1_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_transference_number_EC_DMC_1_1_Landesfeind2019.py new file mode 100644 index 0000000000..0a763b2aab --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_transference_number_EC_DMC_1_1_Landesfeind2019.py @@ -0,0 +1,44 @@ +from .electrolyte_base_Landesfeind2019 import ( + electrolyte_transference_number_base_Landesfeind2019, +) +import numpy as np + + +def electrolyte_transference_number_EC_DMC_1_1_Landesfeind2019(c_e, T): + """ + Transference number of LiPF6 in EC:DMC (1:1 w:w) as a function of ion + concentration and temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte transference number + """ + coeffs = np.array( + [ + -7.91, + 2.45e-1, + 5.28e-2, + 6.98e-1, + -1.08e-2, + -8.21e-5, + 7.43e-4, + -2.22e-3, + 3.07e-5, + ] + ) + + return electrolyte_transference_number_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/parameters.csv b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/parameters.csv new file mode 100644 index 0000000000..998cfc30d4 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/parameters.csv @@ -0,0 +1,10 @@ +Name [units],Value,Reference,Notes +# Empty rows and rows starting with ‘#’ will be ignored,,, +,,, +# Electrolyte properties,,, +Typical electrolyte concentration [mol.m-3],1000,default, +Initial concentration in electrolyte [mol.m-3],1000,default, +Cation transference number,[function]electrolyte_transference_number_EC_DMC_1_1_Landesfeind2019,Landesfeind 2019, +1 + dlnf/dlnc,[function]electrolyte_TDF_EC_DMC_1_1_Landesfeind2019,Landesfeind 2019, +Electrolyte diffusivity [m2.s-1],[function]electrolyte_diffusivity_EC_DMC_1_1_Landesfeind2019,Landesfeind 2019," " +Electrolyte conductivity [S.m-1],[function]electrolyte_conductivity_EC_DMC_1_1_Landesfeind2019,Landesfeind 2019," " \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/README.md b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/README.md new file mode 100644 index 0000000000..2406cfaf76 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/README.md @@ -0,0 +1,5 @@ +# LiPF6 in EC:EMC (3:7 w:w) electrolyte parameters + +Parameters for a LiPF6 in EC:EMC (3:7 w:w) electrolyte, from the paper + +> Johannes Landesfeind and Hubert A. Gasteiger, ["Temperature and Concentration Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes."](https://iopscience.iop.org/article/10.1149/2.0571912jes) Journal of the Electrochemical Society 166 (2019): A3079. diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/__init__.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_TDF_EC_EMC_3_7_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_TDF_EC_EMC_3_7_Landesfeind2019.py new file mode 100644 index 0000000000..99a1b74c9d --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_TDF_EC_EMC_3_7_Landesfeind2019.py @@ -0,0 +1,32 @@ +from .electrolyte_base_Landesfeind2019 import electrolyte_TDF_base_Landesfeind2019 +import numpy as np + + +def electrolyte_TDF_EC_EMC_3_7_Landesfeind2019(c_e, T): + """ + Thermodynamic factor (TDF) of LiPF6 in EC:EMC (3:7 w:w) as a function of ion + concentration and temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte thermodynamic factor + """ + coeffs = np.array( + [2.57e1, -4.51e1, -1.77e-1, 1.94, 2.95e-1, 3.08e-4, 2.59e-1, -9.46e-3, -4.54e-4] + ) + + return electrolyte_TDF_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_base_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_base_Landesfeind2019.py new file mode 100644 index 0000000000..3f67f6051e --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_base_Landesfeind2019.py @@ -0,0 +1,155 @@ +from pybamm import exp, sqrt + + +def electrolyte_conductivity_base_Landesfeind2019(c_e, T, coeffs): + """ + Conductivity of LiPF6 in solvent_X as a function of ion concentration and + temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + coeffs: :class:`pybamm.Symbol` + Fitting parameter coefficients + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte conductivity + """ + c = c_e / 1000 # mol.m-3 -> mol.l + p1, p2, p3, p4, p5, p6 = coeffs + A = p1 * (1 + (T - p2)) + B = 1 + p3 * sqrt(c) + p4 * (1 + p5 * exp(1000 / T)) * c + C = 1 + c**4 * (p6 * exp(1000 / T)) + sigma_e = A * c * B / C # mS.cm-1 + + return sigma_e / 10 + + +def electrolyte_diffusivity_base_Landesfeind2019(c_e, T, coeffs): + """ + Diffusivity of LiPF6 in solvent_X as a function of ion concentration and + temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + coeffs: :class:`pybamm.Symbol` + Fitting parameter coefficients + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte diffusivity + """ + c = c_e / 1000 # mol.m-3 -> mol.l + p1, p2, p3, p4 = coeffs + A = p1 * exp(p2 * c) + B = exp(p3 / T) + C = exp(p4 * c / T) + D_e = A * B * C * 1e-10 # m2/s + + return D_e + + +def electrolyte_TDF_base_Landesfeind2019(c_e, T, coeffs): + """ + Thermodynamic factor (TDF) of LiPF6 in solvent_X as a function of ion concentration + and temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + coeffs: :class:`pybamm.Symbol` + Fitting parameter coefficients + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte thermodynamic factor + """ + c = c_e / 1000 # mol.m-3 -> mol.l + p1, p2, p3, p4, p5, p6, p7, p8, p9 = coeffs + tdf = ( + p1 + + p2 * c + + p3 * T + + p4 * c**2 + + p5 * c * T + + p6 * T**2 + + p7 * c**3 + + p8 * c**2 * T + + p9 * c * T**2 + ) + + return tdf + + +def electrolyte_transference_number_base_Landesfeind2019(c_e, T, coeffs): + """ + Transference number of LiPF6 in solvent_X as a function of ion concentration and + temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + coeffs: :class:`pybamm.Symbol` + Fitting parameter coefficients + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte transference number + """ + c = c_e / 1000 # mol.m-3 -> mol.l + p1, p2, p3, p4, p5, p6, p7, p8, p9 = coeffs + tplus = ( + p1 + + p2 * c + + p3 * T + + p4 * c**2 + + p5 * c * T + + p6 * T**2 + + p7 * c**3 + + p8 * c**2 * T + + p9 * c * T**2 + ) + + return tplus diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019.py new file mode 100644 index 0000000000..3d9c2db549 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019.py @@ -0,0 +1,32 @@ +from .electrolyte_base_Landesfeind2019 import ( + electrolyte_conductivity_base_Landesfeind2019, +) +import numpy as np + + +def electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019(c_e, T): + """ + Conductivity of LiPF6 in EC:EMC (3:7 w:w) as a function of ion concentration and + temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte conductivity + """ + coeffs = np.array([5.21e-1, 2.28e2, -1.06, 3.53e-1, -3.59e-3, 1.48e-3]) + + return electrolyte_conductivity_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019.py new file mode 100644 index 0000000000..9a6d7a108f --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019.py @@ -0,0 +1,32 @@ +from .electrolyte_base_Landesfeind2019 import ( + electrolyte_diffusivity_base_Landesfeind2019, +) +import numpy as np + + +def electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019(c_e, T): + """ + Diffusivity of LiPF6 in EC:EMC (3:7 w:w) as a function of ion concentration and + temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte diffusivity + """ + coeffs = np.array([1.01e3, 1.01, -1.56e3, -4.87e2]) + + return electrolyte_diffusivity_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019.py new file mode 100644 index 0000000000..dc614d1e45 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019.py @@ -0,0 +1,44 @@ +from .electrolyte_base_Landesfeind2019 import ( + electrolyte_transference_number_base_Landesfeind2019, +) +import numpy as np + + +def electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019(c_e, T): + """ + Transference number of LiPF6 in EC:EMC (3:7 w:w) as a function of ion + concentration and temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte transference number + """ + coeffs = np.array( + [ + -1.28e1, + -6.12, + 8.21e-2, + 9.04e-1, + 3.18e-2, + -1.27e-4, + 1.75e-2, + -3.12e-3, + -3.96e-5, + ] + ) + + return electrolyte_transference_number_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/parameters.csv b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/parameters.csv new file mode 100644 index 0000000000..b156009df7 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/parameters.csv @@ -0,0 +1,10 @@ +Name [units],Value,Reference,Notes +# Empty rows and rows starting with ‘#’ will be ignored,,, +,,, +# Electrolyte properties,,, +Typical electrolyte concentration [mol.m-3],1000,default, +Initial concentration in electrolyte [mol.m-3],1000,default, +Cation transference number,[function]electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019,Landesfeind 2019, +1 + dlnf/dlnc,[function]electrolyte_TDF_EC_EMC_3_7_Landesfeind2019,Landesfeind 2019, +Electrolyte diffusivity [m2.s-1],[function]electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019,Landesfeind 2019," " +Electrolyte conductivity [S.m-1],[function]electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019,Landesfeind 2019," " \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/README.md b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/README.md new file mode 100644 index 0000000000..5fb2efc1ce --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/README.md @@ -0,0 +1,5 @@ +# LiPF6 in EMC:FEC (19:1 w:w) electrolyte parameters + +Parameters for a LiPF6 in EMC:FEC (19:1 w:w) electrolyte, from the paper + +> Johannes Landesfeind and Hubert A. Gasteiger, ["Temperature and Concentration Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes."](https://iopscience.iop.org/article/10.1149/2.0571912jes) Journal of the Electrochemical Society 166 (2019): A3079. diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/__init__.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_TDF_EMC_FEC_19_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_TDF_EMC_FEC_19_1_Landesfeind2019.py new file mode 100644 index 0000000000..997b16d9f6 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_TDF_EMC_FEC_19_1_Landesfeind2019.py @@ -0,0 +1,32 @@ +from .electrolyte_base_Landesfeind2019 import electrolyte_TDF_base_Landesfeind2019 +import numpy as np + + +def electrolyte_TDF_EMC_FEC_19_1_Landesfeind2019(c_e, T): + """ + Thermodyamic factor (TDF) of LiPF6 in EMC:FEC (19:1 w:w) as a function of ion + concentration and temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte thermodynamic factor + """ + coeffs = np.array( + [3.22, -1.01e1, -1.58e-2, 6.12, 2.96e-2, 2.42e-5, -2.22e-1, -1.57e-2, 6.30e-6] + ) + + return electrolyte_TDF_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py new file mode 100644 index 0000000000..3f67f6051e --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py @@ -0,0 +1,155 @@ +from pybamm import exp, sqrt + + +def electrolyte_conductivity_base_Landesfeind2019(c_e, T, coeffs): + """ + Conductivity of LiPF6 in solvent_X as a function of ion concentration and + temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + coeffs: :class:`pybamm.Symbol` + Fitting parameter coefficients + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte conductivity + """ + c = c_e / 1000 # mol.m-3 -> mol.l + p1, p2, p3, p4, p5, p6 = coeffs + A = p1 * (1 + (T - p2)) + B = 1 + p3 * sqrt(c) + p4 * (1 + p5 * exp(1000 / T)) * c + C = 1 + c**4 * (p6 * exp(1000 / T)) + sigma_e = A * c * B / C # mS.cm-1 + + return sigma_e / 10 + + +def electrolyte_diffusivity_base_Landesfeind2019(c_e, T, coeffs): + """ + Diffusivity of LiPF6 in solvent_X as a function of ion concentration and + temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + coeffs: :class:`pybamm.Symbol` + Fitting parameter coefficients + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte diffusivity + """ + c = c_e / 1000 # mol.m-3 -> mol.l + p1, p2, p3, p4 = coeffs + A = p1 * exp(p2 * c) + B = exp(p3 / T) + C = exp(p4 * c / T) + D_e = A * B * C * 1e-10 # m2/s + + return D_e + + +def electrolyte_TDF_base_Landesfeind2019(c_e, T, coeffs): + """ + Thermodynamic factor (TDF) of LiPF6 in solvent_X as a function of ion concentration + and temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + coeffs: :class:`pybamm.Symbol` + Fitting parameter coefficients + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte thermodynamic factor + """ + c = c_e / 1000 # mol.m-3 -> mol.l + p1, p2, p3, p4, p5, p6, p7, p8, p9 = coeffs + tdf = ( + p1 + + p2 * c + + p3 * T + + p4 * c**2 + + p5 * c * T + + p6 * T**2 + + p7 * c**3 + + p8 * c**2 * T + + p9 * c * T**2 + ) + + return tdf + + +def electrolyte_transference_number_base_Landesfeind2019(c_e, T, coeffs): + """ + Transference number of LiPF6 in solvent_X as a function of ion concentration and + temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + coeffs: :class:`pybamm.Symbol` + Fitting parameter coefficients + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte transference number + """ + c = c_e / 1000 # mol.m-3 -> mol.l + p1, p2, p3, p4, p5, p6, p7, p8, p9 = coeffs + tplus = ( + p1 + + p2 * c + + p3 * T + + p4 * c**2 + + p5 * c * T + + p6 * T**2 + + p7 * c**3 + + p8 * c**2 * T + + p9 * c * T**2 + ) + + return tplus diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_conductivity_EMC_FEC_19_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_conductivity_EMC_FEC_19_1_Landesfeind2019.py new file mode 100644 index 0000000000..42e80ff9da --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_conductivity_EMC_FEC_19_1_Landesfeind2019.py @@ -0,0 +1,32 @@ +from .electrolyte_base_Landesfeind2019 import ( + electrolyte_conductivity_base_Landesfeind2019, +) +import numpy as np + + +def electrolyte_conductivity_EMC_FEC_19_1_Landesfeind2019(c_e, T): + """ + Conductivity of LiPF6 in EMC:FEC (19:1 w:w) as a function of ion concentration and + temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte conductivity + """ + coeffs = np.array([2.51e-2, 1.75e2, 1.23, 2.05e-1, -8.81e-2, 2.83e-3]) + + return electrolyte_conductivity_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_diffusivity_EMC_FEC_19_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_diffusivity_EMC_FEC_19_1_Landesfeind2019.py new file mode 100644 index 0000000000..8a90084357 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_diffusivity_EMC_FEC_19_1_Landesfeind2019.py @@ -0,0 +1,32 @@ +from .electrolyte_base_Landesfeind2019 import ( + electrolyte_diffusivity_base_Landesfeind2019, +) +import numpy as np + + +def electrolyte_diffusivity_EMC_FEC_19_1_Landesfeind2019(c_e, T): + """ + Diffusivity of LiPF6 in EMC:FEC (19:1 w:w) as a function of ion concentration and + temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte diffusivity + """ + coeffs = np.array([5.86e2, 1.33, -1.38e3, -5.82e2]) + + return electrolyte_diffusivity_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_transference_number_EMC_FEC_19_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_transference_number_EMC_FEC_19_1_Landesfeind2019.py new file mode 100644 index 0000000000..12e683fa8e --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_transference_number_EMC_FEC_19_1_Landesfeind2019.py @@ -0,0 +1,34 @@ +from .electrolyte_base_Landesfeind2019 import ( + electrolyte_transference_number_base_Landesfeind2019, +) +import numpy as np + + +def electrolyte_transference_number_EMC_FEC_19_1_Landesfeind2019(c_e, T): + """ + Transference number of LiPF6 in EMC:FEC (19:1 w:w) as a function of ion + concentration and temperature. The data comes from [1]. + + References + ---------- + .. [1] Landesfeind, J. and Gasteiger, H.A., 2019. Temperature and Concentration + Dependence of the Ionic Transport Properties of Lithium-Ion Battery Electrolytes. + Journal of The Electrochemical Society, 166(14), pp.A3079-A3097. + + Parameters + ---------- + c_e: :class:`pybamm.Symbol` + Dimensional electrolyte concentration + T: :class:`pybamm.Symbol` + Dimensional temperature + + Returns + ------- + :class:`pybamm.Symbol` + Electrolyte transference number + """ + coeffs = np.array( + [-1.22e1, -3.05, 8.38e-2, 1.78, 1.51e-3, -1.37e-4, -2.45e-2, -5.15e-3, 2.14e-5] + ) + + return electrolyte_transference_number_base_Landesfeind2019(c_e, T, coeffs) diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/parameters.csv b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/parameters.csv new file mode 100644 index 0000000000..fde3ede095 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/parameters.csv @@ -0,0 +1,10 @@ +Name [units],Value,Reference,Notes +# Empty rows and rows starting with ‘#’ will be ignored,,, +,,, +# Electrolyte properties,,, +Typical electrolyte concentration [mol.m-3],1000,default, +Initial concentration in electrolyte [mol.m-3],1000,default, +Cation transference number,[function]electrolyte_transference_number_EMC_FEC_19_1_Landesfeind2019,Landesfeind 2019, +1 + dlnf/dlnc,[function]electrolyte_TDF_EMC_FEC_19_1_Landesfeind2019,Landesfeind 2019, +Electrolyte diffusivity [m2.s-1],[function]electrolyte_diffusivity_EMC_FEC_19_1_Landesfeind2019,Landesfeind 2019," " +Electrolyte conductivity [S.m-1],[function]electrolyte_conductivity_EMC_FEC_19_1_Landesfeind2019,Landesfeind 2019," " \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/parameter_values_test.csv b/pybamm/input/parameters/lithium_ion/parameter_values_test.csv new file mode 100644 index 0000000000..1c98133a35 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/parameter_values_test.csv @@ -0,0 +1,4 @@ +Name [units],Value +a,0.1 +b,[function]some_function +c,[data]some_data diff --git a/pybamm/input/parameters/lithium_ion/seis/example/README.md b/pybamm/input/parameters/lithium_ion/seis/example/README.md new file mode 100644 index 0000000000..4330a3d572 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/seis/example/README.md @@ -0,0 +1,11 @@ +# SEI parameters + +Some example parameters for SEI growth from the papers: + +> Ramadass, P., Haran, B., Gomadam, P. M., White, R., & Popov, B. N. (2004). Development of first principles capacity fade model for Li-ion cells. Journal of the Electrochemical Society, 151(2), A196-A203. +> Ploehn, H. J., Ramadass, P., & White, R. E. (2004). Solvent diffusion model for aging of lithium-ion battery cells. Journal of The Electrochemical Society, 151(3), A456-A462. +> Single, F., Latz, A., & Horstmann, B. (2018). Identifying the mechanism of continued growth of the solid–electrolyte interphase. ChemSusChem, 11(12), 1950-1955. +> Safari, M., Morcrette, M., Teyssot, A., & Delacour, C. (2009). Multimodal Physics-Based Aging Model for Life Prediction of Li-Ion Batteries. Journal of The Electrochemical Society, 156(3), +> Yang, X., Leng, Y., Zhang, G., Ge, S., Wang, C. (2017). Modeling of lithium plating induced aging of lithium-ion batteries: Transition from linear to nonlinear aging. Journal of Power Sources, 360, 28-40. + +Note: this parameter set does not claim to be representative of the true parameter values. Instead these are parameter values that were used to fit SEI models to observed experimental data in the referenced papers. diff --git a/pybamm/input/parameters/lithium_ion/seis/example/parameters.csv b/pybamm/input/parameters/lithium_ion/seis/example/parameters.csv new file mode 100644 index 0000000000..4608e3d6d8 --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/seis/example/parameters.csv @@ -0,0 +1,28 @@ +Name [units],Value,Reference,Notes +# Empty rows and rows starting with ‘#’ will be ignored,,, +,,, +# SEI properties,,, +Ratio of lithium moles to SEI moles,2,,Assume SEI made of LEDC and/or Li2CO3 +Inner SEI reaction proportion,0.5,, +Inner SEI partial molar volume [m3.mol-1],9.585e-5, Safari paper, +Outer SEI partial molar volume [m3.mol-1],9.585e-5, Safari paper, +SEI reaction exchange current density [A.m-2],1.5E-7, Guess, +SEI resistivity [Ohm.m],2e5, Safari paper, +Outer SEI solvent diffusivity [m2.s-1],2.5E-22, Single paper, +Bulk solvent concentration [mol.m-3],2.636E3, Ploehn paper, +Inner SEI open-circuit potential [V],0.1,, +Outer SEI open-circuit potential [V],0.8,, +Inner SEI electron conductivity [S.m-1],8.95E-14, Single paper, +Inner SEI lithium interstitial diffusivity [m2.s-1],1E-20, Guess, +Lithium interstitial reference concentration [mol.m-3],15, Single paper, +Initial inner SEI thickness [m], 2.5E-9, 2.5E-9 1/2 of initial thickness in Safari paper, +Initial outer SEI thickness [m], 2.5E-9, 1/2 of initial thickness in Safari paper, +EC initial concentration in electrolyte [mol.m-3], 4.541E3, Safari paper, +EC diffusivity [m2.s-1], 2E-18, adjusted parameter in Yang paper, +SEI kinetic rate constant [m.s-1], 1e-12, adjusted parameter in Yang paper, +SEI open-circuit potential [V], 0.4, Safari paper, +SEI growth activation energy [J.mol-1], 0,, +,,, +# Reaction-driven LAM example,,, +Negative electrode reaction-driven LAM factor [m3.mol-1],0,, +Positive electrode reaction-driven LAM factor [m3.mol-1],0,, diff --git a/pybamm/parameters/__init__.py b/pybamm/parameters/__init__.py index e69de29bb2..2d86081ecb 100644 --- a/pybamm/parameters/__init__.py +++ b/pybamm/parameters/__init__.py @@ -0,0 +1 @@ +from .process_parameter_data import process_1D_data, process_2D_data diff --git a/pybamm/parameters/parameter_sets.py b/pybamm/parameters/parameter_sets.py index 375f043c38..b77db5e0bc 100644 --- a/pybamm/parameters/parameter_sets.py +++ b/pybamm/parameters/parameter_sets.py @@ -4,14 +4,50 @@ # in python files in the input/parameters folder. The Ai2020 parameter set is # kept here for now as it is used in the tests, but will be removed in the future. # -Ai2020 = { - "chemistry": "lithium_ion", - "cell": "Enertech_Ai2020", - "negative electrode": "graphite_Ai2020", - "separator": "separator_Ai2020", - "positive electrode": "lico2_Ai2020", - "electrolyte": "lipf6_Enertech_Ai2020", - "experiment": "1C_discharge_from_full_Ai2020", - "sei": "example", - "citation": "Ai2019", -} +import warnings + + +class ParameterSets: + def __getattribute__(self, name): + # kept for testing for now + if name == "Ai2020": + out = { + "chemistry": "lithium_ion", + "cell": "Enertech_Ai2020", + "negative electrode": "graphite_Ai2020", + "separator": "separator_Ai2020", + "positive electrode": "lico2_Ai2020", + "electrolyte": "lipf6_Enertech_Ai2020", + "experiment": "1C_discharge_from_full_Ai2020", + "sei": "example", + "citation": "Ai2019", + } + # For backwards compatibility, parameter sets that used to be defined in this + # file now return the name as a string, which will load the same parameter + # set as before when passed to `ParameterValues` + elif name in [ + "Chen2020", + "Chen2020_composite", + "Ecker2015", + "Marquis2019", + "Mohtat2020", + "NCA_Kim2011", + "OKane2022", + "ORegan2022", + "Prada2013", + "Ramadass2004", + "Xu2019", + ]: + out = name + else: + raise ValueError(f"Parameter set '{name}' not found") + + warnings.warn( + f"Parameter sets should be called directly by their name ({name})," + f"instead of via pybamm.parameter_sets (pybamm.parameter_sets.{name}).", + DeprecationWarning, + ) + return out + + +parameter_sets = ParameterSets() diff --git a/pybamm/parameters/parameter_values.py b/pybamm/parameters/parameter_values.py index 833a2065ba..e3e8279301 100644 --- a/pybamm/parameters/parameter_values.py +++ b/pybamm/parameters/parameter_values.py @@ -10,7 +10,6 @@ from pprint import pformat from collections import defaultdict import inspect -import json from textwrap import fill import shutil @@ -26,22 +25,8 @@ class ParameterValues: ---------- values : dict or string Explicit set of parameters, or reference to a file of parameters - If string, gets passed to read_parameters_csv to read a file. - chemistry : dict - Dict of strings for default chemistries. Must be of the form: - {"base chemistry": base_chemistry, - "cell": cell_properties_authorYear, - "negative electrode": negative_electrode_chemistry_authorYear, - "separator": separator_chemistry_authorYear, - "positive electrode": positive_electrode_chemistry_authorYear, - "electrolyte": electrolyte_chemistry_authorYear, - "experiment": experimental_conditions_authorYear}. - Then the negative electrode chemistry is loaded from the file - inputs/parameters/base_chemistry/negative electrodes/ - negative_electrode_chemistry_authorYear, etc. - Parameters in "cell" should include geometry and current collector properties. - Parameters in "experiment" should include parameters relating to experimental - conditions, such as initial conditions and currents. + If string and matches one of the inbuilt parameter sets, returns that parameter + set. If non-matching string, gets passed to read_parameters_csv to read a file. Examples -------- @@ -333,27 +318,16 @@ def update(self, values, check_conflict=False, check_already_exists=True, path=" pybamm.root_dir(), "pybamm", "input", "drive_cycles" ) filename = os.path.join(data_path, value[14:] + ".csv") - function_name = value[14:] else: filename = os.path.join(path, value[6:] + ".csv") - function_name = value[6:] filename = pybamm.get_parameters_filepath(filename) - data = pd.read_csv( - filename, comment="#", skip_blank_lines=True, header=None - ).to_numpy() # Save name and data - self._dict_items[name] = (function_name, ([data[:, 0]], data[:, 1])) + self._dict_items[name] = pybamm.parameters.process_1D_data(filename) # parse 2D parameter data elif value.startswith("[2D data]"): filename = os.path.join(path, value[9:] + ".json") - function_name = value[9:] filename = pybamm.get_parameters_filepath(filename) - with open(filename, "r") as jsonfile: - json_data = json.load(jsonfile) - data = json_data["data"] - data[0] = [np.array(el) for el in data[0]] - data[1] = np.array(data[1]) - self._dict_items[name] = (function_name, data) + self._dict_items[name] = pybamm.parameters.process_2D_data(filename) elif value == "[input]": self._dict_items[name] = pybamm.InputParameter(name) @@ -1007,6 +981,7 @@ def export_python_script(self, name, path=None): # Initialize preamble = "import pybamm\n" function_output = "" + data_output = "" dict_output = "" component_params_by_group = getattr( @@ -1037,8 +1012,19 @@ def export_python_script(self, name, path=None): data_file_new = os.path.join(path, f"{data_name}.csv") shutil.copyfile(data_file_old, data_file_new) - # save data with data tag - v = f"'[data]{data_name}'" + # add data output + if data_output == "": + data_output = ( + "# Load data in the appropriate format\n" + "path, _ = os.path.split(os.path.abspath(__file__))\n" + ) + data_output += ( + f"{data_name} = pybamm.parameters.process_1D_data" + f"('{data_name}.csv', path)\n" + ) + v = f"pybamm.{data_name}" + + v = f"{data_name}" elif np.isnan(v): continue # skip this value @@ -1062,6 +1048,7 @@ def export_python_script(self, name, path=None): # construct the output string output = ( function_output + + data_output + "\n# Call dict via a function to avoid errors when editing in place" + "\ndef get_parameter_values():" + docstring @@ -1075,6 +1062,8 @@ def export_python_script(self, name, path=None): preamble += "import pandas as pd\n" if "np." in output: preamble += "import numpy as np\n" + if "os." in output: + preamble += "import os\n" output = preamble + "\n\n" + output # Add pybamm. to functions that didn't have it in function body before diff --git a/pybamm/parameters/process_parameter_data.py b/pybamm/parameters/process_parameter_data.py new file mode 100644 index 0000000000..753bc2fcfb --- /dev/null +++ b/pybamm/parameters/process_parameter_data.py @@ -0,0 +1,60 @@ +# +# Functions to process parameter data (for Interpolants) +# +import os +import pandas as pd +import json +import numpy as np + + +def _process_name(name, path, ext): + if not name.endswith(ext): + name = name + ext + + # Set the path + if path is not None: + # first look in the specified path + filename = os.path.join(path, name) + if not os.path.exists(filename): + # then look in the "data" subfolder + filename = os.path.join(path, "data", name) + if not os.path.exists(filename): + raise FileNotFoundError( + "Could not find file '{}' in '{}' or '{}'".format( + name, path, os.path.join(path, "data") + ) + ) + else: + filename = name + # Split the name (in case original name was a path) + _, name = os.path.split(filename) + + # Remove the extension from the name + return (filename, name[:-4]) + + +def process_1D_data(name, path=None): + """ + Process 1D data from a csv file + """ + filename, name = _process_name(name, path, ".csv") + + data = pd.read_csv( + filename, comment="#", skip_blank_lines=True, header=None + ).to_numpy() + # Save name and data + return (name, ([data[:, 0]], data[:, 1])) + + +def process_2D_data(name, path=None): + """ + Process 2D data from a JSON file + """ + filename, name = _process_name(name, path, ".json") + + with open(filename, "r") as jsonfile: + json_data = json.load(jsonfile) + data = json_data["data"] + data[0] = [np.array(el) for el in data[0]] + data[1] = np.array(data[1]) + return (name, data) diff --git a/tests/unit/test_parameters/test_parameter_sets/test_LCO_Ai2020.py b/tests/unit/test_parameters/test_parameter_sets/test_LCO_Ai2020.py index 8fde394d69..421aedf858 100644 --- a/tests/unit/test_parameters/test_parameter_sets/test_LCO_Ai2020.py +++ b/tests/unit/test_parameters/test_parameter_sets/test_LCO_Ai2020.py @@ -3,7 +3,6 @@ # import pybamm import unittest -import os class TestAi2020(unittest.TestCase): diff --git a/tests/unit/test_parameters/test_parameter_sets/test_LCO_Ramadass2004.py b/tests/unit/test_parameters/test_parameter_sets/test_LCO_Ramadass2004.py index 1692624525..761e4005b8 100644 --- a/tests/unit/test_parameters/test_parameter_sets/test_LCO_Ramadass2004.py +++ b/tests/unit/test_parameters/test_parameter_sets/test_LCO_Ramadass2004.py @@ -3,7 +3,6 @@ # import pybamm import unittest -import os class TestRamadass2004(unittest.TestCase): diff --git a/tests/unit/test_parameters/test_parameter_sets/test_LGM50_ORegan2022.py b/tests/unit/test_parameters/test_parameter_sets/test_LGM50_ORegan2022.py index 8f8807469d..e4c1d44a8e 100644 --- a/tests/unit/test_parameters/test_parameter_sets/test_LGM50_ORegan2022.py +++ b/tests/unit/test_parameters/test_parameter_sets/test_LGM50_ORegan2022.py @@ -3,7 +3,6 @@ # import pybamm import unittest -import os class TestORegan2022(unittest.TestCase): diff --git a/tests/unit/test_parameters/test_parameter_sets/test_Landesfeind2019.py b/tests/unit/test_parameters/test_parameter_sets/test_Landesfeind2019.py index 6c8f276d39..eadfc4f959 100644 --- a/tests/unit/test_parameters/test_parameter_sets/test_Landesfeind2019.py +++ b/tests/unit/test_parameters/test_parameter_sets/test_Landesfeind2019.py @@ -78,16 +78,6 @@ def test_load_params(self): tplus(c[i], T[i]), data_tplus[solvent][i], places=5 ) - def test_standard_lithium_parameters(self): - for solvent in ["EC_DMC_1_1", "EC_EMC_3_7", "EMC_FEC_19_1"]: - chemistry = pybamm.parameter_sets.Chen2020 - chemistry["electrolyte"] = "lipf6_" + solvent + "_Landesfeind2019" - parameter_values = pybamm.ParameterValues(chemistry) - model = pybamm.lithium_ion.DFN() - sim = pybamm.Simulation(model, parameter_values=parameter_values) - sim.set_parameters() - sim.build() - if __name__ == "__main__": print("Add -v for more debug output") diff --git a/tests/unit/test_parameters/test_parameter_sets/test_OKane2022.py b/tests/unit/test_parameters/test_parameter_sets/test_OKane2022.py index 9584866f9e..54452592a7 100644 --- a/tests/unit/test_parameters/test_parameter_sets/test_OKane2022.py +++ b/tests/unit/test_parameters/test_parameter_sets/test_OKane2022.py @@ -3,7 +3,6 @@ # import pybamm import unittest -import os class TestOKane2022(unittest.TestCase): diff --git a/tests/unit/test_parameters/test_parameter_sets/test_parameters_with_default_model.py b/tests/unit/test_parameters/test_parameter_sets/test_parameters_with_default_models.py similarity index 87% rename from tests/unit/test_parameters/test_parameter_sets/test_parameters_with_default_model.py rename to tests/unit/test_parameters/test_parameter_sets/test_parameters_with_default_models.py index d3f25aad0e..f78be45427 100644 --- a/tests/unit/test_parameters/test_parameter_sets/test_parameters_with_default_model.py +++ b/tests/unit/test_parameters/test_parameter_sets/test_parameters_with_default_models.py @@ -21,6 +21,12 @@ def test_parameter_values_with_model(self): "Ecker2015": pybamm.lithium_ion.DFN(), "Mohtat2020": pybamm.lithium_ion.DFN(), "NCA_Kim2011": pybamm.lithium_ion.DFN(), + "OKane2022": pybamm.lithium_ion.DFN( + { + "SEI": "solvent-diffusion limited", + "lithium plating": "partially reversible", + } + ), "ORegan2022": pybamm.lithium_ion.DFN(), "Prada2013": pybamm.lithium_ion.DFN(), "Ramadass2004": pybamm.lithium_ion.DFN(), diff --git a/tests/unit/test_parameters/test_parameter_values.py b/tests/unit/test_parameters/test_parameter_values.py index 60d2dd38c1..7feda55882 100644 --- a/tests/unit/test_parameters/test_parameter_values.py +++ b/tests/unit/test_parameters/test_parameter_values.py @@ -14,6 +14,10 @@ import pybamm import tests.shared as shared +from pybamm.input.parameters.lithium_ion.Marquis2019 import ( + lico2_ocp_Dualfoil1998, + lico2_diffusivity_Dualfoil1998, +) class TestParameterValues(unittest.TestCase): @@ -41,11 +45,11 @@ def test_read_parameters_csv(self): "parameters", "lithium_ion", "positive_electrodes", - "lico2_Marquis2019", + "lico2_Ai2020", "parameters.csv", ) ) - self.assertEqual(data["Positive electrode porosity"], "0.3") + self.assertEqual(data["Positive electrode porosity"], "0.32") def test_init(self): # from dict @@ -57,9 +61,9 @@ def test_init(self): # from file param = pybamm.ParameterValues( - "lithium_ion/positive_electrodes/lico2_Marquis2019/parameters.csv" + "lithium_ion/positive_electrodes/lico2_Ai2020/parameters.csv" ) - self.assertEqual(param["Positive electrode porosity"], 0.3) + self.assertEqual(param["Positive electrode porosity"], 0.32) # from file, absolute path param = pybamm.ParameterValues( @@ -68,10 +72,13 @@ def test_init(self): "pybamm", "input", "parameters", - "lithium_ion/positive_electrodes/lico2_Marquis2019/parameters.csv", + "lithium_ion", + "positive_electrodes", + "lico2_Ai2020", + "parameters.csv", ) ) - self.assertEqual(param["Positive electrode porosity"], 0.3) + self.assertEqual(param["Positive electrode porosity"], 0.32) # values vs chemistry with self.assertRaisesRegex( @@ -104,16 +111,16 @@ def test_update_from_chemistry_local(self): subprocess.run(cmd) # Import parameters from chemistry - pybamm.ParameterValues("Chen2020") + pybamm.ParameterValues("Ai2020") # Clean up parameter files shutil.rmtree("lithium_ion") def test_update(self): # converts to dict if not - param = pybamm.ParameterValues("Chen2020") + param = pybamm.ParameterValues("Ai2020") param_from_csv = pybamm.ParameterValues( - "lithium_ion/negative_electrodes/graphite_Chen2020/parameters.csv" + "lithium_ion/negative_electrodes/graphite_Ai2020/parameters.csv" ) param.update(param_from_csv) # equate values @@ -571,20 +578,16 @@ def test_process_interpolant_2d(self): ) def test_interpolant_against_function(self): - parameter_values = pybamm.ParameterValues({}) + parameter_values = pybamm.ParameterValues({"function": lico2_ocp_Dualfoil1998}) parameter_values.update( - { - "function": "[function]lico2_ocp_Dualfoil1998", - "interpolation": "[data]lico2_data_example", - }, + {"interpolation": "[data]lico2_data_example"}, path=os.path.join( pybamm.root_dir(), "pybamm", "input", "parameters", "lithium_ion", - "positive_electrodes", - "lico2_Marquis2019", + "data", ), check_already_exists=False, ) @@ -609,32 +612,14 @@ def test_interpolant_against_function(self): ) def test_interpolant_2d_from_json(self): - parameter_values = pybamm.ParameterValues("Ai2020") - parameter_values.update( - { - "function": "[function]lico2_diffusivity_Dualfoil1998", - }, - path=os.path.join( - pybamm.root_dir(), - "pybamm", - "input", - "parameters", - "lithium_ion", - "positive_electrodes", - "lico2_Ai2020", - ), - check_already_exists=False, + parameter_values = pybamm.ParameterValues( + {"function": lico2_diffusivity_Dualfoil1998} ) parameter_values.update( { "interpolation": "[2D data]lico2_diffusivity_Dualfoil1998_2D", }, - path=os.path.join( - pybamm.root_dir(), - "tests", - "unit", - "test_parameters", - ), + path=os.path.join(pybamm.root_dir(), "tests", "unit", "test_parameters"), check_already_exists=False, ) diff --git a/tox.ini b/tox.ini index 57bd58fc6d..e2a6002e0c 100644 --- a/tox.ini +++ b/tox.ini @@ -135,3 +135,4 @@ source = pybamm # By default coverage data isn't collected in forked processes, see # https://coverage.readthedocs.io/en/coverage-5.3.1/subprocess.html concurrency = multiprocessing +ignore = "Ai2020_test.py" From 25a12ce2303ab3821b4081cd90d54e9847926e14 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Wed, 5 Oct 2022 18:52:51 -0400 Subject: [PATCH 14/28] #2334 still testing --- .github/codecov.yml | 2 +- docs/index.rst | 1 - docs/source/parameters_cli.rst | 19 - ...utorial 4 - Setting parameter values.ipynb | 165 ------- pybamm/__init__.py | 1 + .../data/nmc_LGM50_ocp_Chen2020.csv | 243 ++++++++++ .../graphite_ocp_Enertech_Ai2020.csv | 129 ----- .../lithium_ion/parameter_values_test.csv | 4 - .../lico2_Ai2020/lico2_ocp_Ai2020.csv | 448 ------------------ .../cells/Enertech_Ai2020/README.md | 0 .../cells/Enertech_Ai2020/parameters.csv | 0 .../{ => testing_only}/cells/__init__.py | 0 .../electrolytes/__init__.py | 0 .../README.md | 0 .../__init__.py | 0 ...ctrolyte_TDF_EC_DMC_1_1_Landesfeind2019.py | 0 .../electrolyte_base_Landesfeind2019.py | 0 ...conductivity_EC_DMC_1_1_Landesfeind2019.py | 0 ..._diffusivity_EC_DMC_1_1_Landesfeind2019.py | 0 ...rence_number_EC_DMC_1_1_Landesfeind2019.py | 0 .../parameters.csv | 0 .../README.md | 0 .../__init__.py | 0 ...ctrolyte_TDF_EC_EMC_3_7_Landesfeind2019.py | 0 .../electrolyte_base_Landesfeind2019.py | 0 ...conductivity_EC_EMC_3_7_Landesfeind2019.py | 0 ..._diffusivity_EC_EMC_3_7_Landesfeind2019.py | 0 ...rence_number_EC_EMC_3_7_Landesfeind2019.py | 0 .../parameters.csv | 0 .../README.md | 0 .../__init__.py | 0 ...rolyte_TDF_EMC_FEC_19_1_Landesfeind2019.py | 0 .../electrolyte_base_Landesfeind2019.py | 0 ...nductivity_EMC_FEC_19_1_Landesfeind2019.py | 0 ...iffusivity_EMC_FEC_19_1_Landesfeind2019.py | 0 ...nce_number_EMC_FEC_19_1_Landesfeind2019.py | 0 .../parameters.csv | 0 .../lipf6_Enertech_Ai2020/README.md | 0 .../lipf6_Enertech_Ai2020/__init__.py | 0 .../lipf6_Enertech_Ai2020/dlnf_dlnc_Ai2020.py | 0 .../electrolyte_conductivity_Ai2020.py | 0 .../electrolyte_diffusivity_Ai2020.py | 0 .../lipf6_Enertech_Ai2020/parameters.csv | 0 .../1C_discharge_from_full_Ai2020/README.md | 0 .../parameters.csv | 0 .../experiments/__init__.py | 0 .../negative_electrodes/__init__.py | 0 .../graphite_Ai2020/README.md | 0 .../graphite_Ai2020/__init__.py | 0 .../graphite_cracking_rate_Ai2020.py | 0 .../graphite_diffusivity_Dualfoil1998.py | 0 ...e_exchange_current_density_Dualfoil1998.py | 0 .../graphite_entropy_Enertech_Ai2020.csv | 0 ...aphite_entropy_Enertech_Ai2020_function.py | 0 .../graphite_ocp_Enertech_Ai2020.csv | 0 .../graphite_ocp_Enertech_Ai2020_function.py | 0 .../graphite_volume_change_Ai2020.py | 0 .../graphite_Ai2020/parameters.csv | 0 .../positive_electrodes/__init__.py | 0 .../lico2_Ai2020/README.md | 0 .../lico2_Ai2020/__init__.py | 0 .../lico2_cracking_rate_Ai2020.py | 0 .../lico2_diffusivity_Dualfoil1998.py | 0 ...e_exchange_current_density_Dualfoil1998.py | 0 .../lico2_entropic_change_Ai2020.csv | 0 .../lico2_entropic_change_Ai2020_function.py | 0 .../lico2_Ai2020}/lico2_ocp_Ai2020.csv | 0 .../lico2_Ai2020/lico2_ocp_Ai2020_function.py | 0 .../lico2_volume_change_Ai2020.py | 0 .../lico2_Ai2020/parameters.csv | 0 .../{ => testing_only}/seis/example/README.md | 0 .../seis/example/parameters.csv | 0 .../{ => testing_only}/separators/__init__.py | 0 .../separators/separator_Ai2020/README.md | 0 .../separator_Ai2020/parameters.csv | 0 .../lithium_ion/Yang2017.py | 14 +- pybamm/parameters/parameter_values.py | 2 +- pybamm/parameters_cli.py | 166 +------ .../test_lithium_ion/test_yang2017.py | 19 - .../test_simulation_with_experiment.py | 24 +- .../test_lithium_ion/test_Yang2017.py | 21 - .../test_parameters/test_parameter_values.py | 11 - .../test_parameters/test_parameters_cli.py | 109 +---- tests/unit/test_util.py | 61 +-- tox.ini | 1 - 85 files changed, 277 insertions(+), 1163 deletions(-) delete mode 100644 docs/source/parameters_cli.rst create mode 100644 pybamm/input/parameters/lithium_ion/data/nmc_LGM50_ocp_Chen2020.csv delete mode 100644 pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/graphite_ocp_Enertech_Ai2020.csv delete mode 100644 pybamm/input/parameters/lithium_ion/parameter_values_test.csv delete mode 100644 pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/lico2_ocp_Ai2020.csv rename pybamm/input/parameters/lithium_ion/{ => testing_only}/cells/Enertech_Ai2020/README.md (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/cells/Enertech_Ai2020/parameters.csv (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/cells/__init__.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/__init__.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/README.md (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/__init__.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_TDF_EC_DMC_1_1_Landesfeind2019.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_conductivity_EC_DMC_1_1_Landesfeind2019.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_diffusivity_EC_DMC_1_1_Landesfeind2019.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_transference_number_EC_DMC_1_1_Landesfeind2019.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/parameters.csv (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/README.md (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/__init__.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_TDF_EC_EMC_3_7_Landesfeind2019.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_base_Landesfeind2019.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/parameters.csv (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/README.md (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/__init__.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_TDF_EMC_FEC_19_1_Landesfeind2019.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_conductivity_EMC_FEC_19_1_Landesfeind2019.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_diffusivity_EMC_FEC_19_1_Landesfeind2019.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_transference_number_EMC_FEC_19_1_Landesfeind2019.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/parameters.csv (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_Enertech_Ai2020/README.md (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_Enertech_Ai2020/__init__.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_Enertech_Ai2020/dlnf_dlnc_Ai2020.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_Enertech_Ai2020/electrolyte_conductivity_Ai2020.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_Enertech_Ai2020/electrolyte_diffusivity_Ai2020.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/electrolytes/lipf6_Enertech_Ai2020/parameters.csv (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/experiments/1C_discharge_from_full_Ai2020/README.md (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/experiments/1C_discharge_from_full_Ai2020/parameters.csv (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/experiments/__init__.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/negative_electrodes/__init__.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/negative_electrodes/graphite_Ai2020/README.md (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/negative_electrodes/graphite_Ai2020/__init__.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/negative_electrodes/graphite_Ai2020/graphite_cracking_rate_Ai2020.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/negative_electrodes/graphite_Ai2020/graphite_diffusivity_Dualfoil1998.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/negative_electrodes/graphite_Ai2020/graphite_electrolyte_exchange_current_density_Dualfoil1998.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/negative_electrodes/graphite_Ai2020/graphite_entropy_Enertech_Ai2020.csv (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/negative_electrodes/graphite_Ai2020/graphite_entropy_Enertech_Ai2020_function.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only/negative_electrodes/graphite_Ai2020}/graphite_ocp_Enertech_Ai2020.csv (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/negative_electrodes/graphite_Ai2020/graphite_ocp_Enertech_Ai2020_function.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/negative_electrodes/graphite_Ai2020/graphite_volume_change_Ai2020.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/negative_electrodes/graphite_Ai2020/parameters.csv (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/positive_electrodes/__init__.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/positive_electrodes/lico2_Ai2020/README.md (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/positive_electrodes/lico2_Ai2020/__init__.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/positive_electrodes/lico2_Ai2020/lico2_cracking_rate_Ai2020.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/positive_electrodes/lico2_Ai2020/lico2_diffusivity_Dualfoil1998.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/positive_electrodes/lico2_Ai2020/lico2_electrolyte_exchange_current_density_Dualfoil1998.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/positive_electrodes/lico2_Ai2020/lico2_entropic_change_Ai2020.csv (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/positive_electrodes/lico2_Ai2020/lico2_entropic_change_Ai2020_function.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only/positive_electrodes/lico2_Ai2020}/lico2_ocp_Ai2020.csv (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/positive_electrodes/lico2_Ai2020/lico2_ocp_Ai2020_function.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/positive_electrodes/lico2_Ai2020/lico2_volume_change_Ai2020.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/positive_electrodes/lico2_Ai2020/parameters.csv (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/seis/example/README.md (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/seis/example/parameters.csv (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/separators/__init__.py (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/separators/separator_Ai2020/README.md (100%) rename pybamm/input/parameters/lithium_ion/{ => testing_only}/separators/separator_Ai2020/parameters.csv (100%) delete mode 100644 tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_yang2017.py diff --git a/.github/codecov.yml b/.github/codecov.yml index 8c807f7472..0e71eda5de 100644 --- a/.github/codecov.yml +++ b/.github/codecov.yml @@ -1,3 +1,3 @@ ignore: - - pybamm/parameters_cli.py + - Ai2020_test.py - pybamm/install_odes.py diff --git a/docs/index.rst b/docs/index.rst index 36c265a929..b62ae8d770 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -83,7 +83,6 @@ API documentation source/util source/callbacks source/citations - source/parameters_cli source/batch_study Examples diff --git a/docs/source/parameters_cli.rst b/docs/source/parameters_cli.rst deleted file mode 100644 index a92d7f332e..0000000000 --- a/docs/source/parameters_cli.rst +++ /dev/null @@ -1,19 +0,0 @@ -Parameters command line interface -======================================= - -PyBaMM comes with a small command line interface that can be used to manage parameter sets. -By default, PyBaMM provides parameters in the "input" directory located in the pybamm package -directory. -If you wish to add new parameters, you can first pull a given parameter directory into the current -working directory using the command ``pybamm_edit_parameter`` for manual editing. -By default, PyBaMM first looks for parameter defined in the current working directory before -falling back the package directory if nothing is found locally. -If you wish to access a newly defined parameter set from anywhere in your system, you can use -``pybamm_add_parameter`` to copy a given parameter directory to the package directory. -To get a list of currently available parameter sets, use ``pybamm_list_parameters``. - -.. autofunction:: pybamm.parameters_cli.add_parameter - -.. autofunction:: pybamm.parameters_cli.remove_parameter - -.. autofunction:: pybamm.parameters_cli.edit_parameter diff --git a/examples/notebooks/Getting Started/Tutorial 4 - Setting parameter values.ipynb b/examples/notebooks/Getting Started/Tutorial 4 - Setting parameter values.ipynb index baa87a9102..73e7d04de1 100644 --- a/examples/notebooks/Getting Started/Tutorial 4 - Setting parameter values.ipynb +++ b/examples/notebooks/Getting Started/Tutorial 4 - Setting parameter values.ipynb @@ -258,64 +258,6 @@ "sim.plot()" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Change individual components" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can replace individual components of the chemistry (such as the electrolyte or positive electrode). Care should be taken when doing so since some parameters may only be valid for certain combinataions of components. To replace an individual component, we first load the `chemistry` from the parameter sets" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "chemistry = pybamm.parameter_sets.Chen2020" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This variable is a dictionary with the corresponding parameter subsets for each component." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'chemistry': 'lithium_ion',\n", - " 'cell': 'LGM50_Chen2020',\n", - " 'negative electrode': 'graphite_Chen2020',\n", - " 'separator': 'separator_Chen2020',\n", - " 'positive electrode': 'nmc_Chen2020',\n", - " 'electrolyte': 'lipf6_Nyman2008',\n", - " 'experiment': '1C_discharge_from_full_Chen2020',\n", - " 'sei': 'example',\n", - " 'citation': 'Chen2020'}" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "chemistry" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -323,113 +265,6 @@ "More details on each subset can be found [here](https://github.com/pybamm-team/PyBaMM/tree/develop/pybamm/input/parameters)." ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For example, we replace the electrolyte component as follows" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "chemistry[\"electrolyte\"] = \"lipf6_Valoen2005\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can pass the updated `'chemistry'` into `ParameterValues` to create the dictionary of parameter values" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "parameter_values = pybamm.ParameterValues(chemistry)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this case this only changes the conductivity and diffusivity functions" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "EC initial concentration in electrolyte [mol.m-3]\t4541.0\n", - "Electrolyte conductivity [S.m-1]\t\n", - "Electrolyte diffusivity [m2.s-1]\t\n", - "Initial concentration in electrolyte [mol.m-3]\t1000.0\n", - "Negative electrode Bruggeman coefficient (electrolyte)\t1.5\n", - "Positive electrode Bruggeman coefficient (electrolyte)\t1.5\n", - "Separator Bruggeman coefficient (electrolyte)\t1.5\n", - "Typical electrolyte concentration [mol.m-3]\t1000.0\n" - ] - } - ], - "source": [ - "parameter_values.search(\"electrolyte\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can run the simulation again with the updated parameters" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "e17db80b47e1436a8c3b15f3fd479ad3", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "interactive(children=(FloatSlider(value=0.0, description='t', max=3560.1058147685944, step=35.60105814768595),…" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model = pybamm.lithium_ion.DFN()\n", - "sim = pybamm.Simulation(model, parameter_values=parameter_values)\n", - "sim.solve([0, 3600])\n", - "sim.plot()" - ] - }, { "cell_type": "markdown", "metadata": {}, diff --git a/pybamm/__init__.py b/pybamm/__init__.py index 608bc81b15..f6b49fb748 100644 --- a/pybamm/__init__.py +++ b/pybamm/__init__.py @@ -163,6 +163,7 @@ from .parameters.lead_acid_parameters import LeadAcidParameters from .parameters.size_distribution_parameters import * from .parameters.parameter_sets import parameter_sets +from .parameters_cli import add_parameter, remove_parameter, edit_parameter # # Mesh and Discretisation classes diff --git a/pybamm/input/parameters/lithium_ion/data/nmc_LGM50_ocp_Chen2020.csv b/pybamm/input/parameters/lithium_ion/data/nmc_LGM50_ocp_Chen2020.csv new file mode 100644 index 0000000000..7dc9adc71c --- /dev/null +++ b/pybamm/input/parameters/lithium_ion/data/nmc_LGM50_ocp_Chen2020.csv @@ -0,0 +1,243 @@ +# OCP data for LG M50 NMC positive electrode +# sto,ocp +# extra point to avoid extrapolation +0.248797280909757,4.40 +# experimentally measured data +0.266145163492257,4.29356530000000 +0.268867632314474,4.27686210000000 +0.271590113475307,4.26470180000000 +0.274312581168247,4.25403120000000 +0.277035051828500,4.24494460000000 +0.279757525339878,4.23648790000000 +0.282479995064952,4.23026470000000 +0.285202473437965,4.22255280000000 +0.287924947671149,4.21825740000000 +0.290647431425727,4.21329400000000 +0.293369917257952,4.20903730000000 +0.296092386692851,4.20512390000000 +0.298814868849636,4.20126770000000 +0.301537350055390,4.19815640000000 +0.304259830904681,4.19552180000000 +0.306982312259254,4.19311670000000 +0.309704783671781,4.18897440000000 +0.312427252746966,4.18815330000000 +0.315149732455743,4.18658830000000 +0.317872201316148,4.18502280000000 +0.320594658973297,4.18322850000000 +0.323317140454362,4.18088050000000 +0.326039617362371,4.18057490000000 +0.328762086363981,4.17895220000000 +0.331484555867675,4.17681460000000 +0.334207025471543,4.17681460000000 +0.336929501255821,4.17528720000000 +0.339651973273663,4.17311100000000 +0.342374462458239,4.17267180000000 +0.345096938615155,4.17108770000000 +0.347819410074246,4.17022850000000 +0.350541895855318,4.16879700000000 +0.353264376316384,4.16698310000000 +0.355986846136589,4.16551350000000 +0.358709322969457,4.16345170000000 +0.361431798807600,4.15982480000000 +0.364154276288401,4.15717120000000 +0.366876742342325,4.15407900000000 +0.369599211442129,4.15041350000000 +0.372321688828519,4.14665320000000 +0.375044179100704,4.14233880000000 +0.377766654413886,4.13823460000000 +0.380489134491185,4.13382480000000 +0.383211609132993,4.13057990000000 +0.385934081264202,4.12723920000000 +0.388656550366338,4.12281040000000 +0.391379033718590,4.11861090000000 +0.394101506024207,4.11418200000000 +0.396823981011550,4.10960050000000 +0.399546445031954,4.10469480000000 +0.402268917913251,4.10047580000000 +0.404991398895142,4.09564640000000 +0.407713868869987,4.09096960000000 +0.410436337723266,4.08646440000000 +0.413158819617673,4.08184480000000 +0.415881292009550,4.07768300000000 +0.418603765047837,4.07333090000000 +0.421326243264316,4.06907370000000 +0.424048721985195,4.06472160000000 +0.426771203785911,4.06086540000000 +0.429493683560302,4.05647470000000 +0.432216157859838,4.05275250000000 +0.434938637930869,4.04924010000000 +0.437661112840513,4.04502110000000 +0.440383593375701,4.04198600000000 +0.443106070903017,4.03847360000000 +0.445828558295681,4.03517100000000 +0.448551031796266,4.03204060000000 +0.451273507249511,4.02892880000000 +0.453996003855954,4.02597000000000 +0.456718484235626,4.02274370000000 +0.459440954945593,4.01997570000000 +0.462163428115050,4.01751330000000 +0.464885915164505,4.01497460000000 +0.467608383790858,4.01220660000000 +0.470330853087581,4.00995400000000 +0.473053327146540,4.00756790000000 +0.475775805779291,4.00506690000000 +0.478498280251222,4.00231840000000 +0.481220742406741,3.99955010000000 +0.483943214533784,3.99693490000000 +0.486665690272151,3.99265890000000 +0.489388163807013,3.98895550000000 +0.492110637403290,3.98340030000000 +0.494833100364319,3.97830370000000 +0.497555571325341,3.97559290000000 +0.500278043298208,3.97076320000000 +0.503000516078447,3.96810980000000 +0.505722984627149,3.96356650000000 +0.508445451410474,3.95944330000000 +0.511167916160712,3.95566340000000 +0.513890383743419,3.95215110000000 +0.516612844491088,3.94791320000000 +0.519335313666282,3.94382810000000 +0.522057772177089,3.94008660000000 +0.524780244833149,3.93623040000000 +0.527502711490113,3.93142010000000 +0.530225181904053,3.92838480000000 +0.532947653094719,3.92422320000000 +0.535670116160643,3.91920280000000 +0.538392582186640,3.91662570000000 +0.541115055303321,3.91179610000000 +0.543837527290114,3.90815000000000 +0.546559999225906,3.90387390000000 +0.549282473099007,3.89955970000000 +0.552004938974192,3.89591360000000 +0.554727397110192,3.89093140000000 +0.557449855597342,3.88726620000000 +0.560172327720750,3.88310480000000 +0.562894802037505,3.87934420000000 +0.565617285773971,3.87476280000000 +0.568339758495162,3.87025760000000 +0.571062218638907,3.86668780000000 +0.573784688274245,3.86239270000000 +0.576507157299816,3.85817410000000 +0.579229628899775,3.85414600000000 +0.581952099068137,3.84998460000000 +0.584674561619127,3.84500220000000 +0.587397020754022,3.84225340000000 +0.590119479693579,3.83809190000000 +0.592841939924731,3.83415960000000 +0.595564403547528,3.83093330000000 +0.598286868612232,3.82721090000000 +0.601009347425258,3.82316400000000 +0.603731818208659,3.81923150000000 +0.606454292118578,3.81598640000000 +0.609176768553542,3.81230210000000 +0.611899246291593,3.80903790000000 +0.614621716230771,3.80716710000000 +0.617344187685711,3.80405550000000 +0.620066659099430,3.80136390000000 +0.622789138734988,3.79708790000000 +0.625511617433531,3.79533170000000 +0.628234084250521,3.79206730000000 +0.630956557807740,3.78838300000000 +0.633679025844496,3.78553890000000 +0.636401495064267,3.78382060000000 +0.639123970191964,3.78111000000000 +0.641846449308652,3.77948740000000 +0.644568927771322,3.77692940000000 +0.647291404914478,3.77360800000000 +0.650013889129768,3.76959920000000 +0.652736367967840,3.76902650000000 +0.655458839536009,3.76627760000000 +0.658181310438348,3.76429220000000 +0.660903786306585,3.76268890000000 +0.663626254736975,3.76037910000000 +0.666348738333431,3.75755380000000 +0.669071213782409,3.75520560000000 +0.671793687532754,3.75331590000000 +0.674516164245807,3.75071980000000 +0.677238646529723,3.74875350000000 +0.679961125087374,3.74714990000000 +0.682683607484084,3.74428650000000 +0.685406075721887,3.74230120000000 +0.688128545911254,3.74006770000000 +0.690851028189204,3.73857880000000 +0.693573498264774,3.73453190000000 +0.696295966701841,3.73392110000000 +0.699018434718856,3.73016050000000 +0.701740901054719,3.73010330000000 +0.704463378887980,3.72783160000000 +0.707185849109592,3.72515890000000 +0.709908327081682,3.72386100000000 +0.712630805246016,3.72157030000000 +0.715353278555653,3.71912670000000 +0.718075742809693,3.71727510000000 +0.720798219830455,3.71570970000000 +0.723520694189328,3.71309450000000 +0.726243165189205,3.70994470000000 +0.728965639893390,3.70710040000000 +0.731688103753489,3.70456150000000 +0.734410565090537,3.70358800000000 +0.737133034756847,3.70208000000000 +0.739855506564427,3.70026640000000 +0.742577987473750,3.69721220000000 +0.745300467667417,3.69528410000000 +0.748022934626483,3.69293620000000 +0.750745403364983,3.68980550000000 +0.753467872385266,3.68909910000000 +0.756190338725858,3.68652200000000 +0.758912814805470,3.68497590000000 +0.761635286778263,3.68216970000000 +0.764357761597942,3.68081430000000 +0.767080238030274,3.67865730000000 +0.769802703134331,3.67619470000000 +0.772525170787922,3.67476300000000 +0.775247647398611,3.67128870000000 +0.777970116013000,3.66972330000000 +0.780692583791189,3.66789080000000 +0.783415062024859,3.66525650000000 +0.786137529881339,3.66306110000000 +0.788859991839412,3.66027400000000 +0.791582456579698,3.65836520000000 +0.794304940665857,3.65548280000000 +0.797027408651066,3.65229490000000 +0.799749868022516,3.64998480000000 +0.802472336866029,3.64704510000000 +0.805194798213859,3.64055470000000 +0.807917271231816,3.63834050000000 +0.810639738427300,3.63507600000000 +0.813362206944959,3.63354900000000 +0.816084680519184,3.63223170000000 +0.818807143264440,3.63068560000000 +0.821529609046551,3.62839480000000 +0.824252075066457,3.62684870000000 +0.826974531979797,3.62430980000000 +0.829696999423772,3.62236260000000 +0.832419462686953,3.61936550000000 +0.835141923021117,3.61776210000000 +0.837864385539901,3.61585310000000 +0.840586843407759,3.61283710000000 +0.843309308653791,3.61180620000000 +0.846031768598797,3.60945820000000 +0.848754235411593,3.60724380000000 +0.851476699467683,3.60499120000000 +0.854199161102801,3.60308220000000 +0.856921623426447,3.60126880000000 +0.859644087674256,3.59958890000000 +0.862366559650803,3.59764170000000 +0.865089024293406,3.59519840000000 +0.867811486910360,3.59384300000000 +0.870533951869352,3.59162860000000 +0.873256418218254,3.58949070000000 +0.875978884501499,3.58742900000000 +0.878701351769785,3.58529090000000 +0.881423826658424,3.58347750000000 +0.884146298809852,3.58177850000000 +0.886868771867091,3.58011770000000 +0.889591240142391,3.57788420000000 +0.892313713281813,3.57633810000000 +0.895036201752086,3.57378010000000 +0.897758683022040,3.57210020000000 +0.900481161991173,3.57021020000000 +0.903203643476430,3.56849220000000 +0.905926128940627,3.56721330000000 +# extra points to avoid extrapolation +1,3.52302166875714 \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/graphite_ocp_Enertech_Ai2020.csv b/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/graphite_ocp_Enertech_Ai2020.csv deleted file mode 100644 index 8a5bce2874..0000000000 --- a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/graphite_ocp_Enertech_Ai2020.csv +++ /dev/null @@ -1,129 +0,0 @@ -# OCP for graphite from Ai 2020 -# sto,ocp [V] -# extra point to avoid extrapolation -0,3.5 -# experimentally measured data -0.0005,3 -0.00127041,1.04 -0.00152479,1.01 -0.00190595,0.972653837 -0.002223558,0.94249055 -0.004060547,0.816240592 -0.004820151,0.780280928 -0.006463943,0.71896262 -0.00741337,0.691374757 -0.008616506,0.661391781 -0.009123417,0.649962232 -0.010768226,0.6165173 -0.012665046,0.583310858 -0.014118344,0.560830783 -0.017786752,0.512439476 -0.02069469,0.48025136 -0.023983799,0.448495867 -0.030502175,0.39598881 -0.036001135,0.359507681 -0.039606662,0.338477981 -0.059148083,0.256319558 -0.061297942,0.25117361 -0.071349833,0.236055324 -0.080265526,0.231009217 -0.119208079,0.2232966 -0.128120548,0.218284244 -0.134253707,0.213273859 -0.141584594,0.208228362 -0.150874177,0.203209739 -0.160609131,0.198620985 -0.170345957,0.193816376 -0.189747769,0.184166915 -0.209222253,0.176790532 -0.21901773,0.173830441 -0.228756579,0.170963261 -0.238552575,0.167903501 -0.248349231,0.164649979 -0.258084023,0.161491332 -0.267821184,0.15859383 -0.28741535,0.153399157 -0.297209811,0.151002319 -0.307004942,0.14886213 -0.316798396,0.146918911 -0.326534032,0.145328142 -0.336321558,0.144002109 -0.346061758,0.142902125 -0.355856392,0.142014262 -0.365593044,0.141316008 -0.375388012,0.140759105 -0.385120781,0.140314323 -0.394915577,0.139942322 -0.404717479,0.139617851 -0.414512102,0.139325406 -0.424244871,0.139051014 -0.434039331,0.138779297 -0.44377024,0.138517413 -0.453564862,0.138258897 -0.463298139,0.137981293 -0.473034456,0.137672226 -0.482766544,0.137329325 -0.492564552,0.136903224 -0.502302892,0.136390244 -0.512042595,0.135757581 -0.521833161,0.134947101 -0.531572182,0.133923235 -0.541369033,0.132621681 -0.551104831,0.130989474 -0.5608998,0.128964924 -0.570635608,0.126549987 -0.580434806,0.123742878 -0.590235692,0.120770834 -0.599977407,0.117929634 -0.609716266,0.115379983 -0.619517822,0.113205423 -0.629313635,0.111366477 -0.639049108,0.109855495 -0.648790152,0.108578952 -0.658584104,0.107520678 -0.668320248,0.106632536 -0.67805504,0.105893758 -0.687851869,0.105260613 -0.69764938,0.104713189 -0.707389072,0.104254365 -0.717188097,0.103845625 -0.726977148,0.103477119 -0.736776336,0.103153932 -0.746515866,0.102856541 -0.756259106,0.102587443 -0.766055091,0.102338279 -0.775789039,0.102101986 -0.785537861,0.101880905 -0.79532979,0.101676423 -0.805080646,0.101465878 -0.814827099,0.101264171 -0.824570003,0.101062635 -0.834370889,0.10087041 -0.844173289,0.10068096 -0.853913187,0.100489223 -0.86365051,0.100300437 -0.873392073,0.100099718 -0.883126865,0.099877104 -0.892918286,0.099628985 -0.902708516,0.099332616 -0.912443308,0.098958419 -0.922232533,0.098442542 -0.932019724,0.097683643 -0.941812832,0.096492 -0.951602392,0.094510791 -0.961392795,0.091136817 -0.970177652,0.086115186 -0.976051358,0.081078748 -0.980413449,0.07604037 -0.983887804,0.070991535 -0.986792703,0.065898328 -0.989255096,0.060844047 -0.991401407,0.055810118 -0.993359929,0.050670698 -0.995130154,0.045562401 -0.996776304,0.040392663 -0.99822944,0.035261272 -0.999241066,0.030242658 -0.999746961,0.024850768 -0.999936448,0.019251502 -1,0.004994678 \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/parameter_values_test.csv b/pybamm/input/parameters/lithium_ion/parameter_values_test.csv deleted file mode 100644 index 1c98133a35..0000000000 --- a/pybamm/input/parameters/lithium_ion/parameter_values_test.csv +++ /dev/null @@ -1,4 +0,0 @@ -Name [units],Value -a,0.1 -b,[function]some_function -c,[data]some_data diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/lico2_ocp_Ai2020.csv b/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/lico2_ocp_Ai2020.csv deleted file mode 100644 index ffd7886e2b..0000000000 --- a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/lico2_ocp_Ai2020.csv +++ /dev/null @@ -1,448 +0,0 @@ -# OCP for lico2 from Rieger 2016 -# stoichiometry , OCP [V] -0.43,4.3 -0.436639784,4.279907753 -0.437906143,4.276472669 -0.439172502,4.273800938 -0.44043886,4.271129206 -0.441705219,4.268648313 -0.442971578,4.266167419 -0.444237937,4.263686526 -0.445504296,4.261205633 -0.446770655,4.258724739 -0.448037014,4.256243846 -0.449303373,4.253762952 -0.450569732,4.251282059 -0.45183609,4.248992003 -0.453102449,4.24651111 -0.454368808,4.244221054 -0.455635167,4.24174016 -0.456901526,4.239259267 -0.458167885,4.236969211 -0.459434244,4.234679156 -0.460700603,4.232198262 -0.461966961,4.229717369 -0.46323332,4.227236475 -0.464499679,4.225137258 -0.465766038,4.222656364 -0.467032397,4.220366309 -0.468298756,4.217885415 -0.469565115,4.21559536 -0.470831474,4.213305304 -0.472097833,4.211015249 -0.473364191,4.208534355 -0.47463055,4.2062443 -0.475896909,4.203954244 -0.477163268,4.201664189 -0.478429627,4.199374133 -0.479695986,4.197084078 -0.480962345,4.194794022 -0.482228704,4.192503967 -0.483495063,4.190213911 -0.484761421,4.187923856 -0.48602778,4.185824638 -0.487294139,4.183534582 -0.488560498,4.181053689 -0.489826857,4.178954471 -0.491093216,4.176855254 -0.492359575,4.174565198 -0.493625934,4.172275143 -0.494892292,4.169985087 -0.496158651,4.16788587 -0.49742501,4.165786652 -0.498691369,4.163687435 -0.499957728,4.161588217 -0.501224087,4.159298161 -0.502490446,4.157389782 -0.503756805,4.155290564 -0.505023163,4.153191347 -0.506289522,4.151092129 -0.507555881,4.148992912 -0.50882224,4.146893694 -0.510088599,4.144794476 -0.511354958,4.142504421 -0.512621317,4.140405203 -0.513887676,4.138305986 -0.515154035,4.136206768 -0.516420393,4.134107551 -0.517686752,4.131817495 -0.518953111,4.129718278 -0.52021947,4.12761906 -0.521485829,4.125519842 -0.522752188,4.123229787 -0.524018547,4.121130569 -0.525284906,4.11922219 -0.526551264,4.116932134 -0.527817622,4.115023755 -0.52908398,4.112733699 -0.530350338,4.110634481 -0.531616697,4.108726102 -0.532883056,4.106817722 -0.534149415,4.104718505 -0.535415774,4.102619287 -0.536682133,4.100901745 -0.537948492,4.09861169 -0.539214851,4.09670331 -0.54048121,4.094985769 -0.541747568,4.092886551 -0.543013927,4.090978171 -0.544280286,4.089069792 -0.545546645,4.08735225 -0.546813004,4.085443871 -0.548079363,4.083535491 -0.549345722,4.081817949 -0.550612081,4.07990957 -0.551878439,4.078192028 -0.553144798,4.076474486 -0.554411157,4.074566107 -0.555677516,4.072848565 -0.556943875,4.071131024 -0.558210234,4.069413482 -0.559476593,4.06769594 -0.560742952,4.065978399 -0.562009311,4.064451695 -0.563275669,4.062734153 -0.564542028,4.06120745 -0.565808387,4.05929907 -0.567074746,4.057772366 -0.568341105,4.056054825 -0.569607464,4.054528121 -0.570873823,4.052810579 -0.572140182,4.051283876 -0.573406541,4.049566334 -0.574672899,4.04803963 -0.575939258,4.046322089 -0.577205617,4.044795385 -0.578471976,4.043268681 -0.579738335,4.04155114 -0.581004694,4.040024436 -0.582271053,4.038306894 -0.583537412,4.036971029 -0.58480377,4.035253487 -0.586070129,4.033726783 -0.587336488,4.03220008 -0.588602847,4.030673376 -0.589869206,4.029146672 -0.591135565,4.027619968 -0.592401924,4.026093265 -0.593668283,4.024566561 -0.594934642,4.023039857 -0.596201,4.021703992 -0.597467359,4.020177288 -0.598733718,4.018841422 -0.600000077,4.017314719 -0.601266436,4.015788015 -0.602532795,4.014261311 -0.603799154,4.012925445 -0.605065513,4.01158958 -0.606331872,4.010253714 -0.60759823,4.00872701 -0.608864589,4.007391145 -0.610130948,4.006055279 -0.611397307,4.004719413 -0.612663666,4.003383547 -0.613930025,4.001856844 -0.615196384,4.000711816 -0.616462743,3.99937595 -0.617729101,3.997849247 -0.61899546,3.996704219 -0.620261819,3.995368353 -0.621528178,3.994032487 -0.622794537,3.99288746 -0.624060896,3.991551594 -0.625327255,3.990215728 -0.626593614,3.9890707 -0.627859973,3.987734835 -0.629126331,3.986398969 -0.63039269,3.985253941 -0.631659049,3.984108913 -0.632925408,3.982773048 -0.634191767,3.98162802 -0.635458126,3.980292154 -0.636724485,3.979147126 -0.637990844,3.978192937 -0.639257202,3.976857071 -0.640523561,3.975712043 -0.64178992,3.974567015 -0.643056279,3.973421988 -0.644322638,3.97227696 -0.645588997,3.970941094 -0.646855356,3.969986904 -0.648121715,3.968841877 -0.649388074,3.967696849 -0.650654432,3.966742659 -0.651920791,3.965597631 -0.65318715,3.964452603 -0.654453509,3.963498414 -0.655719868,3.962353386 -0.656986227,3.961208358 -0.658252586,3.960254168 -0.659518945,3.959109141 -0.660785304,3.958154951 -0.662051662,3.957200761 -0.663318021,3.956055733 -0.66458438,3.955101543 -0.665850739,3.954147354 -0.667117098,3.953002326 -0.668383457,3.952048136 -0.669649816,3.951284784 -0.670916175,3.950139756 -0.672182533,3.949185567 -0.673448892,3.948231377 -0.674715251,3.947277187 -0.67598161,3.946513835 -0.677247969,3.945368807 -0.678514328,3.944605456 -0.679780687,3.943651266 -0.681047046,3.942697076 -0.682313405,3.941933724 -0.683579763,3.940979534 -0.684846122,3.940025344 -0.686112481,3.939261993 -0.68737884,3.938307803 -0.688645199,3.937544451 -0.689911568,3.936590261 -0.691177927,3.935826909 -0.692444286,3.93487272 -0.693710645,3.934109368 -0.694977004,3.933346016 -0.696243363,3.932582664 -0.697509722,3.931819312 -0.698776081,3.930865122 -0.700042439,3.930292608 -0.701308798,3.929338419 -0.702575157,3.928575067 -0.703841516,3.927811715 -0.705107875,3.927048363 -0.706374234,3.926285011 -0.707640593,3.925521659 -0.708906952,3.924949146 -0.71017331,3.924185794 -0.711439669,3.92361328 -0.712706028,3.922849928 -0.713972387,3.922086576 -0.715238746,3.921323224 -0.716505105,3.92075071 -0.717771464,3.919987359 -0.719037823,3.919224007 -0.720304182,3.918651493 -0.72157054,3.918078979 -0.722836899,3.917506465 -0.724103258,3.916933951 -0.725369617,3.916361437 -0.726635976,3.915788923 -0.727902335,3.915025572 -0.729168694,3.914643896 -0.730435053,3.913880544 -0.731701411,3.91330803 -0.73296777,3.912735516 -0.734234129,3.912163002 -0.735500488,3.911781326 -0.736766847,3.911208812 -0.738033206,3.910636298 -0.739299565,3.910063785 -0.740565924,3.909491271 -0.741832283,3.908918757 -0.743098641,3.908537081 -0.744365,3.908155405 -0.745631359,3.907582891 -0.746897718,3.907010377 -0.748164077,3.906628701 -0.749430436,3.906056187 -0.750696795,3.905865349 -0.751963154,3.905292836 -0.753229513,3.90491116 -0.754495871,3.904529484 -0.75576223,3.90395697 -0.757028589,3.903575294 -0.758294948,3.903193618 -0.759561307,3.902811942 -0.760827666,3.902621104 -0.762094025,3.902239428 -0.763360384,3.901857752 -0.764626742,3.901476076 -0.765893101,3.9010944 -0.76715946,3.900903562 -0.768425819,3.900521887 -0.769692178,3.900140211 -0.770958537,3.899949373 -0.772224896,3.899758535 -0.773491255,3.899376859 -0.774757613,3.899186021 -0.776023972,3.898995183 -0.777290331,3.898613507 -0.77855669,3.898422669 -0.779823049,3.898040993 -0.781089408,3.897850155 -0.782355767,3.897659317 -0.783622126,3.897468479 -0.784888485,3.897277641 -0.786154843,3.897086803 -0.787421202,3.896705127 -0.788687561,3.896705127 -0.78995392,3.896514289 -0.791220279,3.896323451 -0.792486638,3.896323451 -0.793752997,3.896132613 -0.795019356,3.895750938 -0.796285715,3.895750938 -0.797552073,3.8955601 -0.798818432,3.895369262 -0.800084791,3.895178424 -0.80135115,3.894987586 -0.802617509,3.894796748 -0.803883868,3.89460591 -0.805150227,3.89460591 -0.806416586,3.894415072 -0.807682944,3.894224234 -0.808949303,3.894033396 -0.810215662,3.894033396 -0.811482021,3.893842558 -0.81274838,3.89365172 -0.814014739,3.89365172 -0.815281098,3.893460882 -0.816547457,3.893270044 -0.817813816,3.893270044 -0.819080174,3.893079206 -0.820346533,3.892888368 -0.821612892,3.89269753 -0.822879251,3.89269753 -0.82414561,3.892506692 -0.825411969,3.892315854 -0.826678328,3.892125016 -0.827944687,3.891934178 -0.829211045,3.891934178 -0.830477404,3.89174334 -0.831743763,3.891552502 -0.833010122,3.891361664 -0.834276481,3.891170826 -0.83554284,3.890979989 -0.836809199,3.890979989 -0.838075558,3.890789151 -0.839341917,3.890598313 -0.840608275,3.890407475 -0.841874634,3.890216637 -0.843140993,3.890025799 -0.844407352,3.889834961 -0.845673711,3.889834961 -0.84694007,3.889644123 -0.848206429,3.889262447 -0.849472788,3.889071609 -0.850739146,3.888880771 -0.852005505,3.888689933 -0.853271864,3.888499095 -0.854538223,3.888308257 -0.855804582,3.888117419 -0.857070941,3.887735743 -0.8583373,3.887544905 -0.859603659,3.887354067 -0.860870018,3.887163229 -0.862136376,3.886972391 -0.863402735,3.886590715 -0.864669094,3.88620904 -0.865935453,3.886018202 -0.867201812,3.885827364 -0.868468171,3.885445688 -0.86973453,3.885064012 -0.871000889,3.884873174 -0.872267247,3.884491498 -0.873533606,3.88430066 -0.874799965,3.883918984 -0.876066324,3.883728146 -0.877332683,3.88334647 -0.878599042,3.882773956 -0.879865401,3.882583118 -0.88113176,3.882201442 -0.882398119,3.881819766 -0.883664477,3.88143809 -0.884930836,3.881056415 -0.886197195,3.880674739 -0.887463554,3.880102225 -0.888729913,3.879529711 -0.889996272,3.879148035 -0.891262631,3.878575521 -0.89252899,3.878193845 -0.893795349,3.877812169 -0.895061707,3.877239655 -0.896328066,3.876667141 -0.897594425,3.876094628 -0.898860784,3.875522114 -0.900127143,3.8749496 -0.901393502,3.874377086 -0.902659861,3.873613734 -0.90392622,3.87304122 -0.905192579,3.872468706 -0.906458937,3.871705354 -0.907725296,3.871132841 -0.908991655,3.870369489 -0.910258014,3.869415299 -0.911524373,3.868842785 -0.912790732,3.868079433 -0.914057091,3.867125243 -0.915323449,3.866171054 -0.916589808,3.865407702 -0.917856167,3.864453512 -0.919122526,3.863499322 -0.920388885,3.862545132 -0.921655244,3.861400105 -0.922921603,3.860255077 -0.924187962,3.859300887 -0.92545432,3.858155859 -0.926720679,3.856819994 -0.927987038,3.855674966 -0.929253397,3.854148262 -0.930519756,3.853003234 -0.931786115,3.851476531 -0.933052474,3.849949827 -0.934318833,3.848423123 -0.935585192,3.84689642 -0.93685155,3.84498804 -0.938117909,3.843270498 -0.939384268,3.841362119 -0.940650627,3.839262901 -0.941916986,3.837163684 -0.943183345,3.835064466 -0.944449704,3.832583573 -0.945716063,3.830102679 -0.946982421,3.827430948 -0.94824878,3.824759216 -0.949515139,3.821896647 -0.950781498,3.818843239 -0.952047857,3.815598994 -0.953314216,3.812163911 -0.954580575,3.808537989 -0.955846934,3.804912068 -0.957113293,3.800904471 -0.958379651,3.796896874 -0.95964601,3.792698439 -0.960912369,3.788309166 -0.962178728,3.783919893 -0.963445087,3.779148944 -0.964711446,3.774568832 -0.965977805,3.769607045 -0.967244164,3.765026934 -0.968510523,3.760065147 -0.969776881,3.75510336 -0.97104324,3.750141573 -0.972309599,3.745179786 -0.973575958,3.740217999 -0.974842317,3.735065375 -0.976108676,3.72991275 -0.977375035,3.724760125 -0.978641394,3.719416662 -0.979907752,3.713882361 -0.981174111,3.708157222 -0.98244047,3.702241245 -0.983706829,3.696134431 -0.984973188,3.689455102 -0.986239547,3.682394097 -0.987505906,3.674760579 -0.988772265,3.666363709 -0.990038623,3.656630973 -0.991304982,3.645562371 -0.992571341,3.632203714 -0.9938377,3.615219135 -0.995104059,3.591936904 -0.996370418,3.557204395 -0.997636777,3.501098035 -0.998903136,3.4089233 diff --git a/pybamm/input/parameters/lithium_ion/cells/Enertech_Ai2020/README.md b/pybamm/input/parameters/lithium_ion/testing_only/cells/Enertech_Ai2020/README.md similarity index 100% rename from pybamm/input/parameters/lithium_ion/cells/Enertech_Ai2020/README.md rename to pybamm/input/parameters/lithium_ion/testing_only/cells/Enertech_Ai2020/README.md diff --git a/pybamm/input/parameters/lithium_ion/cells/Enertech_Ai2020/parameters.csv b/pybamm/input/parameters/lithium_ion/testing_only/cells/Enertech_Ai2020/parameters.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/cells/Enertech_Ai2020/parameters.csv rename to pybamm/input/parameters/lithium_ion/testing_only/cells/Enertech_Ai2020/parameters.csv diff --git a/pybamm/input/parameters/lithium_ion/cells/__init__.py b/pybamm/input/parameters/lithium_ion/testing_only/cells/__init__.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/cells/__init__.py rename to pybamm/input/parameters/lithium_ion/testing_only/cells/__init__.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/__init__.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/__init__.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/__init__.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/__init__.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/README.md b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/README.md similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/README.md rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/README.md diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/__init__.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/__init__.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/__init__.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/__init__.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_TDF_EC_DMC_1_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_TDF_EC_DMC_1_1_Landesfeind2019.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_TDF_EC_DMC_1_1_Landesfeind2019.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_TDF_EC_DMC_1_1_Landesfeind2019.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_conductivity_EC_DMC_1_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_conductivity_EC_DMC_1_1_Landesfeind2019.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_conductivity_EC_DMC_1_1_Landesfeind2019.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_conductivity_EC_DMC_1_1_Landesfeind2019.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_diffusivity_EC_DMC_1_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_diffusivity_EC_DMC_1_1_Landesfeind2019.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_diffusivity_EC_DMC_1_1_Landesfeind2019.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_diffusivity_EC_DMC_1_1_Landesfeind2019.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_transference_number_EC_DMC_1_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_transference_number_EC_DMC_1_1_Landesfeind2019.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_transference_number_EC_DMC_1_1_Landesfeind2019.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/electrolyte_transference_number_EC_DMC_1_1_Landesfeind2019.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/parameters.csv b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/parameters.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/parameters.csv rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_DMC_1_1_Landesfeind2019/parameters.csv diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/README.md b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/README.md similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/README.md rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/README.md diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/__init__.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/__init__.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/__init__.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/__init__.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_TDF_EC_EMC_3_7_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_TDF_EC_EMC_3_7_Landesfeind2019.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_TDF_EC_EMC_3_7_Landesfeind2019.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_TDF_EC_EMC_3_7_Landesfeind2019.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_base_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_base_Landesfeind2019.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_base_Landesfeind2019.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_base_Landesfeind2019.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_conductivity_EC_EMC_3_7_Landesfeind2019.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_diffusivity_EC_EMC_3_7_Landesfeind2019.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/electrolyte_transference_number_EC_EMC_3_7_Landesfeind2019.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/parameters.csv b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/parameters.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/parameters.csv rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EC_EMC_3_7_Landesfeind2019/parameters.csv diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/README.md b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/README.md similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/README.md rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/README.md diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/__init__.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/__init__.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/__init__.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/__init__.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_TDF_EMC_FEC_19_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_TDF_EMC_FEC_19_1_Landesfeind2019.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_TDF_EMC_FEC_19_1_Landesfeind2019.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_TDF_EMC_FEC_19_1_Landesfeind2019.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_base_Landesfeind2019.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_conductivity_EMC_FEC_19_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_conductivity_EMC_FEC_19_1_Landesfeind2019.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_conductivity_EMC_FEC_19_1_Landesfeind2019.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_conductivity_EMC_FEC_19_1_Landesfeind2019.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_diffusivity_EMC_FEC_19_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_diffusivity_EMC_FEC_19_1_Landesfeind2019.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_diffusivity_EMC_FEC_19_1_Landesfeind2019.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_diffusivity_EMC_FEC_19_1_Landesfeind2019.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_transference_number_EMC_FEC_19_1_Landesfeind2019.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_transference_number_EMC_FEC_19_1_Landesfeind2019.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_transference_number_EMC_FEC_19_1_Landesfeind2019.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/electrolyte_transference_number_EMC_FEC_19_1_Landesfeind2019.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/parameters.csv b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/parameters.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/parameters.csv rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_EMC_FEC_19_1_Landesfeind2019/parameters.csv diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Enertech_Ai2020/README.md b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_Enertech_Ai2020/README.md similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Enertech_Ai2020/README.md rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_Enertech_Ai2020/README.md diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Enertech_Ai2020/__init__.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_Enertech_Ai2020/__init__.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Enertech_Ai2020/__init__.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_Enertech_Ai2020/__init__.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Enertech_Ai2020/dlnf_dlnc_Ai2020.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_Enertech_Ai2020/dlnf_dlnc_Ai2020.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Enertech_Ai2020/dlnf_dlnc_Ai2020.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_Enertech_Ai2020/dlnf_dlnc_Ai2020.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Enertech_Ai2020/electrolyte_conductivity_Ai2020.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_Enertech_Ai2020/electrolyte_conductivity_Ai2020.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Enertech_Ai2020/electrolyte_conductivity_Ai2020.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_Enertech_Ai2020/electrolyte_conductivity_Ai2020.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Enertech_Ai2020/electrolyte_diffusivity_Ai2020.py b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_Enertech_Ai2020/electrolyte_diffusivity_Ai2020.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Enertech_Ai2020/electrolyte_diffusivity_Ai2020.py rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_Enertech_Ai2020/electrolyte_diffusivity_Ai2020.py diff --git a/pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Enertech_Ai2020/parameters.csv b/pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_Enertech_Ai2020/parameters.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/electrolytes/lipf6_Enertech_Ai2020/parameters.csv rename to pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_Enertech_Ai2020/parameters.csv diff --git a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Ai2020/README.md b/pybamm/input/parameters/lithium_ion/testing_only/experiments/1C_discharge_from_full_Ai2020/README.md similarity index 100% rename from pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Ai2020/README.md rename to pybamm/input/parameters/lithium_ion/testing_only/experiments/1C_discharge_from_full_Ai2020/README.md diff --git a/pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Ai2020/parameters.csv b/pybamm/input/parameters/lithium_ion/testing_only/experiments/1C_discharge_from_full_Ai2020/parameters.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/experiments/1C_discharge_from_full_Ai2020/parameters.csv rename to pybamm/input/parameters/lithium_ion/testing_only/experiments/1C_discharge_from_full_Ai2020/parameters.csv diff --git a/pybamm/input/parameters/lithium_ion/experiments/__init__.py b/pybamm/input/parameters/lithium_ion/testing_only/experiments/__init__.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/experiments/__init__.py rename to pybamm/input/parameters/lithium_ion/testing_only/experiments/__init__.py diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/__init__.py b/pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/__init__.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/negative_electrodes/__init__.py rename to pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/__init__.py diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/README.md b/pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/README.md similarity index 100% rename from pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/README.md rename to pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/README.md diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/__init__.py b/pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/__init__.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/__init__.py rename to pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/__init__.py diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/graphite_cracking_rate_Ai2020.py b/pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/graphite_cracking_rate_Ai2020.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/graphite_cracking_rate_Ai2020.py rename to pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/graphite_cracking_rate_Ai2020.py diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/graphite_diffusivity_Dualfoil1998.py b/pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/graphite_diffusivity_Dualfoil1998.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/graphite_diffusivity_Dualfoil1998.py rename to pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/graphite_diffusivity_Dualfoil1998.py diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/graphite_electrolyte_exchange_current_density_Dualfoil1998.py b/pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/graphite_electrolyte_exchange_current_density_Dualfoil1998.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/graphite_electrolyte_exchange_current_density_Dualfoil1998.py rename to pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/graphite_electrolyte_exchange_current_density_Dualfoil1998.py diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/graphite_entropy_Enertech_Ai2020.csv b/pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/graphite_entropy_Enertech_Ai2020.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/graphite_entropy_Enertech_Ai2020.csv rename to pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/graphite_entropy_Enertech_Ai2020.csv diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/graphite_entropy_Enertech_Ai2020_function.py b/pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/graphite_entropy_Enertech_Ai2020_function.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/graphite_entropy_Enertech_Ai2020_function.py rename to pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/graphite_entropy_Enertech_Ai2020_function.py diff --git a/pybamm/input/parameters/lithium_ion/graphite_ocp_Enertech_Ai2020.csv b/pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/graphite_ocp_Enertech_Ai2020.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/graphite_ocp_Enertech_Ai2020.csv rename to pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/graphite_ocp_Enertech_Ai2020.csv diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/graphite_ocp_Enertech_Ai2020_function.py b/pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/graphite_ocp_Enertech_Ai2020_function.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/graphite_ocp_Enertech_Ai2020_function.py rename to pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/graphite_ocp_Enertech_Ai2020_function.py diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/graphite_volume_change_Ai2020.py b/pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/graphite_volume_change_Ai2020.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/graphite_volume_change_Ai2020.py rename to pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/graphite_volume_change_Ai2020.py diff --git a/pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/parameters.csv b/pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/parameters.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/negative_electrodes/graphite_Ai2020/parameters.csv rename to pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/parameters.csv diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/__init__.py b/pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/__init__.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/positive_electrodes/__init__.py rename to pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/__init__.py diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/README.md b/pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/README.md similarity index 100% rename from pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/README.md rename to pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/README.md diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/__init__.py b/pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/__init__.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/__init__.py rename to pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/__init__.py diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/lico2_cracking_rate_Ai2020.py b/pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/lico2_cracking_rate_Ai2020.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/lico2_cracking_rate_Ai2020.py rename to pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/lico2_cracking_rate_Ai2020.py diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/lico2_diffusivity_Dualfoil1998.py b/pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/lico2_diffusivity_Dualfoil1998.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/lico2_diffusivity_Dualfoil1998.py rename to pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/lico2_diffusivity_Dualfoil1998.py diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/lico2_electrolyte_exchange_current_density_Dualfoil1998.py b/pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/lico2_electrolyte_exchange_current_density_Dualfoil1998.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/lico2_electrolyte_exchange_current_density_Dualfoil1998.py rename to pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/lico2_electrolyte_exchange_current_density_Dualfoil1998.py diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/lico2_entropic_change_Ai2020.csv b/pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/lico2_entropic_change_Ai2020.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/lico2_entropic_change_Ai2020.csv rename to pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/lico2_entropic_change_Ai2020.csv diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/lico2_entropic_change_Ai2020_function.py b/pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/lico2_entropic_change_Ai2020_function.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/lico2_entropic_change_Ai2020_function.py rename to pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/lico2_entropic_change_Ai2020_function.py diff --git a/pybamm/input/parameters/lithium_ion/lico2_ocp_Ai2020.csv b/pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/lico2_ocp_Ai2020.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/lico2_ocp_Ai2020.csv rename to pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/lico2_ocp_Ai2020.csv diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/lico2_ocp_Ai2020_function.py b/pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/lico2_ocp_Ai2020_function.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/lico2_ocp_Ai2020_function.py rename to pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/lico2_ocp_Ai2020_function.py diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/lico2_volume_change_Ai2020.py b/pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/lico2_volume_change_Ai2020.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/lico2_volume_change_Ai2020.py rename to pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/lico2_volume_change_Ai2020.py diff --git a/pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/parameters.csv b/pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/parameters.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/positive_electrodes/lico2_Ai2020/parameters.csv rename to pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/parameters.csv diff --git a/pybamm/input/parameters/lithium_ion/seis/example/README.md b/pybamm/input/parameters/lithium_ion/testing_only/seis/example/README.md similarity index 100% rename from pybamm/input/parameters/lithium_ion/seis/example/README.md rename to pybamm/input/parameters/lithium_ion/testing_only/seis/example/README.md diff --git a/pybamm/input/parameters/lithium_ion/seis/example/parameters.csv b/pybamm/input/parameters/lithium_ion/testing_only/seis/example/parameters.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/seis/example/parameters.csv rename to pybamm/input/parameters/lithium_ion/testing_only/seis/example/parameters.csv diff --git a/pybamm/input/parameters/lithium_ion/separators/__init__.py b/pybamm/input/parameters/lithium_ion/testing_only/separators/__init__.py similarity index 100% rename from pybamm/input/parameters/lithium_ion/separators/__init__.py rename to pybamm/input/parameters/lithium_ion/testing_only/separators/__init__.py diff --git a/pybamm/input/parameters/lithium_ion/separators/separator_Ai2020/README.md b/pybamm/input/parameters/lithium_ion/testing_only/separators/separator_Ai2020/README.md similarity index 100% rename from pybamm/input/parameters/lithium_ion/separators/separator_Ai2020/README.md rename to pybamm/input/parameters/lithium_ion/testing_only/separators/separator_Ai2020/README.md diff --git a/pybamm/input/parameters/lithium_ion/separators/separator_Ai2020/parameters.csv b/pybamm/input/parameters/lithium_ion/testing_only/separators/separator_Ai2020/parameters.csv similarity index 100% rename from pybamm/input/parameters/lithium_ion/separators/separator_Ai2020/parameters.csv rename to pybamm/input/parameters/lithium_ion/testing_only/separators/separator_Ai2020/parameters.csv diff --git a/pybamm/models/full_battery_models/lithium_ion/Yang2017.py b/pybamm/models/full_battery_models/lithium_ion/Yang2017.py index b3495c1331..fa34efe2fa 100644 --- a/pybamm/models/full_battery_models/lithium_ion/Yang2017.py +++ b/pybamm/models/full_battery_models/lithium_ion/Yang2017.py @@ -16,16 +16,4 @@ def __init__(self, options=None, name="Yang2017", build=True): @property def default_parameter_values(self): - return pybamm.ParameterValues( - { - "chemistry": "lithium_ion", - "cell": "LGM50_Chen2020", - "negative electrode": "graphite_Chen2020", - "separator": "separator_Chen2020", - "positive electrode": "nmc_Chen2020", - "electrolyte": "lipf6_Nyman2008", - "experiment": "1C_discharge_from_full_Chen2020", - "sei": "example", - "lithium plating": "okane2020_Li_plating", - } - ) + return pybamm.ParameterValues("Yang2017") diff --git a/pybamm/parameters/parameter_values.py b/pybamm/parameters/parameter_values.py index e3e8279301..0cdaa76c82 100644 --- a/pybamm/parameters/parameter_values.py +++ b/pybamm/parameters/parameter_values.py @@ -1009,7 +1009,7 @@ def export_python_script(self, name, path=None): self.chemistry[component_group], f"{data_name}.csv", ) - data_file_new = os.path.join(path, f"{data_name}.csv") + data_file_new = os.path.join(path, "data", f"{data_name}.csv") shutil.copyfile(data_file_old, data_file_new) # add data output diff --git a/pybamm/parameters_cli.py b/pybamm/parameters_cli.py index 431b5043f5..bb41aad97a 100644 --- a/pybamm/parameters_cli.py +++ b/pybamm/parameters_cli.py @@ -1,169 +1,17 @@ -import os -import pybamm -import argparse -import shutil - -from pathlib import Path - - -def yes_or_no(question): - while "Please answer yes(y) or no(n).": - reply = str(input(question + " (y/n): ")).lower().strip() - if reply[:1] == "y": - return True - if reply[:1] == "n": - return False - - -def get_parser(description): - """ - Create a parser with the following arguments: - parameter_dir: str - battery_type: str - component: str - force: bool, optional - - Parameter: - ---------- - description: A description of the command [str] - - Returns - ------- - argparse.ArgumentParser - """ - parser = argparse.ArgumentParser(description=description) - parser.add_argument( - "parameter_dir", type=str, help="Name of the parameter directory" - ) - parser.add_argument("battery_type", choices=["lithium_ion", "lead_acid"]) - parser.add_argument( - "component", - choices=[ - "cells", - "electrolytes", - "experiments", - "negative_electrodes", - "positive_electrodes", - "separators", - ], +def raise_error(): + raise NotImplementedError( + "parameters cli has been deprecated. " + "Parameters should now be defined via python files." ) - parser.add_argument("-f", "--force", action="store_true") - return parser - - -def copy_directory(source, destination, overwrite): - """ - Copy directory structure source as destination, dealing - with overwriting. - - Parameters: - ----------- - source: Directory structure [str] - destination: Directory structure [str] - overwrite: Whether or not to overwrite [bool] - - Example: - -------- - source = "site-packages/pybamm/input/parameters/lead_acid/negative_electrodes/blah" - destination = "input/parameters/lead_acid/negative_electrodes/blah" - Will copy - "input/parameters/lead_acid/negative_electrodes/blah" - in current working directory. - """ - try: - shutil.copytree(source, destination) - except FileExistsError: - if overwrite: - shutil.rmtree(destination) - shutil.copytree(source, destination) - elif yes_or_no("Parameter set already defined, erase?"): - shutil.rmtree(destination) - shutil.copytree(source, destination) - else: - print("Doing nothing.") - # Implementation note: - # In python 3.7 shutil.copytree() does not provide an option to - # automatically overwrite a directory tree. - # When switching to python 3.8, the following function could be - # written using - # shutil.copytree(args.parameter_dir, destination_dir, exist_ok=True) - # and getting rid of the rmtree calls. - # see https://docs.python.org/3/library/shutil.html def add_parameter(arguments=None): - """ - Add a parameter directory to package input directory. - This allows the parameters to be used from anywhere in the system. - - Example: - "add_parameter foo lithium_ion negative_electrodes" will copy directory foo in - "pybamm/input/parameters/lithium_ion/negative_electrodes". - """ - parser = get_parser("Copy parameter to the PyBaMM package directory.") - args = parser.parse_args(arguments) - - parameters_root_dir = os.path.join(pybamm.__path__[0], "input", "parameters") - - parameter_dir_name = Path(args.parameter_dir).name - destination_dir = os.path.join( - parameters_root_dir, args.battery_type, args.component, parameter_dir_name - ) - - copy_directory(args.parameter_dir, destination_dir, args.force) + raise_error() def remove_parameter(arguments=None): - """ - Remove a parameter directory from package input directory. - - Example: - "rm_parameter foo lithium_ion negative_electrodes" will remove directory foo in - "pybamm/input/parameters/lithium_ion/negative_electrodes". - """ - parser = get_parser("Remove parameters from the PyBaMM package directory.") - args = parser.parse_args(arguments) - - parameters_root_dir = os.path.join(pybamm.__path__[0], "input", "parameters") - - parameter_dir_name = Path(args.parameter_dir).name - destination_dir = os.path.join( - parameters_root_dir, args.battery_type, args.component, parameter_dir_name - ) - - if not args.force: - yes_or_no("This will remove directory {}, continue?".format(destination_dir)) - shutil.rmtree(destination_dir, ignore_errors=True) + raise_error() def edit_parameter(arguments=None): - """ - Copy a given default parameter directory to the current working directory - for editing. For example - - .. code:: - - edit_parameter(["lithium_ion"]) - - will create the directory structure:: - - lithium_ion/ - negative_electrodes/ - graphite_Chen2020 - ... - positive_electrodes/ - ... - - in the current working directory. - """ - desc = "Pull parameter directory dir to current working directory for editing." - parser = argparse.ArgumentParser(description=desc) - parser.add_argument("chemistry", choices=["lithium_ion", "lead_acid"]) - parser.add_argument("-f", "--force", action="store_true") - - args = parser.parse_args(arguments) - - path = os.path.join("input", "parameters", args.chemistry) - - source_dir = os.path.join(pybamm.__path__[0], path) - copy_directory(source_dir, args.chemistry, args.force) + raise_error() diff --git a/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_yang2017.py b/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_yang2017.py deleted file mode 100644 index c8b3bfdfad..0000000000 --- a/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_yang2017.py +++ /dev/null @@ -1,19 +0,0 @@ -import pybamm -import unittest -import tests - - -class TestYang2017(unittest.TestCase): - def test_basic_processing(self): - model = pybamm.lithium_ion.Yang2017() - modeltest = tests.StandardModelTest(model) - modeltest.test_all() - - -if __name__ == "__main__": - print("Add -v for more debug output") - import sys - - if "-v" in sys.argv: - debug = True - unittest.main() diff --git a/tests/unit/test_experiments/test_simulation_with_experiment.py b/tests/unit/test_experiments/test_simulation_with_experiment.py index ec7e524b90..b8b187982a 100644 --- a/tests/unit/test_experiments/test_simulation_with_experiment.py +++ b/tests/unit/test_experiments/test_simulation_with_experiment.py @@ -394,16 +394,12 @@ def test_cycle_summary_variables(self): "input", "parameters", "lithium_ion", - "negative_electrodes", - "graphite_Chen2020", + "data", "graphite_LGM50_ocp_Chen2020.csv", ) - function_name = "graphite_Chen2020" - filename = pybamm.get_parameters_filepath(filename) - data = pd.read_csv( - filename, comment="#", skip_blank_lines=True, header=None - ).to_numpy() - param["Negative electrode OCP [V]"] = (function_name, data) + param["Negative electrode OCP [V]"] = pybamm.parameters.process_1D_data( + filename + ) # Load positive electrode OCP data filename = os.path.join( @@ -412,16 +408,12 @@ def test_cycle_summary_variables(self): "input", "parameters", "lithium_ion", - "positive_electrodes", - "nmc_Chen2020", + "data", "nmc_LGM50_ocp_Chen2020.csv", ) - function_name = "nmc_LGM50_ocp_Chen2020.csv" - filename = pybamm.get_parameters_filepath(filename) - data = pd.read_csv( - filename, comment="#", skip_blank_lines=True, header=None - ).to_numpy() - param["Positive electrode OCP [V]"] = (function_name, data) + param["Positive electrode OCP [V]"] = pybamm.parameters.process_1D_data( + filename + ) sim = pybamm.Simulation(model, experiment=experiment, parameter_values=param) sim.solve(solver=pybamm.CasadiSolver("safe"), save_at_cycles=2) diff --git a/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_Yang2017.py b/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_Yang2017.py index 7bb321c22a..08b9277504 100644 --- a/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_Yang2017.py +++ b/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_Yang2017.py @@ -11,27 +11,6 @@ def test_well_posed(self): model = pybamm.lithium_ion.Yang2017() model.check_well_posedness() - def test_default_parameter_values(self): - model = pybamm.lithium_ion.Yang2017() - parameter_values = pybamm.ParameterValues( - { - "chemistry": "lithium_ion", - "cell": "LGM50_Chen2020", - "negative electrode": "graphite_Chen2020", - "separator": "separator_Chen2020", - "positive electrode": "nmc_Chen2020", - "electrolyte": "lipf6_Nyman2008", - "experiment": "1C_discharge_from_full_Chen2020", - "sei": "example", - "lithium plating": "okane2020_Li_plating", - } - ) - for key, value in parameter_values.items(): - if not isinstance(value, tuple): - np.testing.assert_array_equal( - value, model.default_parameter_values[key] - ) - if __name__ == "__main__": print("Add -v for more debug output") diff --git a/tests/unit/test_parameters/test_parameter_values.py b/tests/unit/test_parameters/test_parameter_values.py index 7feda55882..0105ef2967 100644 --- a/tests/unit/test_parameters/test_parameter_values.py +++ b/tests/unit/test_parameters/test_parameter_values.py @@ -105,17 +105,6 @@ def test_update_from_chemistry(self): with self.assertRaisesRegex(KeyError, "must provide 'cell' parameters"): pybamm.ParameterValues({"chemistry": "lithium_ion"}) - def test_update_from_chemistry_local(self): - # Copy parameters - cmd = ["pybamm_edit_parameter", "-f", "lithium_ion"] - subprocess.run(cmd) - - # Import parameters from chemistry - pybamm.ParameterValues("Ai2020") - - # Clean up parameter files - shutil.rmtree("lithium_ion") - def test_update(self): # converts to dict if not param = pybamm.ParameterValues("Ai2020") diff --git a/tests/unit/test_parameters/test_parameters_cli.py b/tests/unit/test_parameters/test_parameters_cli.py index 0f916d7c37..ae5f1a5365 100644 --- a/tests/unit/test_parameters/test_parameters_cli.py +++ b/tests/unit/test_parameters/test_parameters_cli.py @@ -14,108 +14,13 @@ @unittest.skipIf(platform.system() == "Windows", "Skipped for Windows") class TestParametersCLI(unittest.TestCase): - def test_add_rm_param(self): - # Read a parameter file thta is shipped with PyBaMM - param_pkg_dir = os.path.join(pybamm.__path__[0], "input", "parameters") - param_filename = os.path.join( - param_pkg_dir, - "lithium_ion", - "negative_electrodes", - "graphite_mcmb2528_Marquis2019", - "parameters.csv", - ) - - negative_electrode = pybamm.ParameterValues({}).read_parameters_csv( - param_filename - ) - - # Write these parameters in current working dir. to mimic - # user-defined parameters - tempdir = tempfile.TemporaryDirectory() - new_parameter_file = os.path.join(tempdir.name, "parameters.csv") - with open(new_parameter_file, "w", newline="") as csvfile: - fieldnames = ["Name [units]", "Value"] - writer = csv.writer(csvfile) - writer.writerow(fieldnames) - for row in negative_electrode.items(): - writer.writerow(row) - - # Use pybamm command line to add new parameters under - # test_parameters_dir directory - cmd = [ - "pybamm_add_parameter", - "-f", - tempdir.name, - "lithium_ion", - "negative_electrodes", - ] - subprocess.run(cmd, check=True) - - # Check that the new parameters can be accessed from the package - # and that content is correct - new_parameter_filename = os.path.join( - param_pkg_dir, - "lithium_ion", - "negative_electrodes", - os.path.basename(tempdir.name), - "parameters.csv", - ) - self.assertTrue(os.path.isfile(new_parameter_filename)) - - new_negative_electrode = pybamm.ParameterValues({}).read_parameters_csv( - new_parameter_filename - ) - self.assertEqual(new_negative_electrode["Negative electrode porosity"], "0.3") - - # Now delete added parameter - cmd = [ - "pybamm_rm_parameter", - "-f", - tempdir.name, - "lithium_ion", - "negative_electrodes", - ] - subprocess.run(cmd, check=True) - self.assertFalse(os.path.isfile(new_parameter_filename)) - - # Clean up directories - tempdir.cleanup() # Remove temporary local directory - - def test_edit_param(self): - negative_electrodes_dir = os.path.join( - "input", "parameters", "lithium_ion", "negative_electrodes" - ) - chemistry = "lithium_ion" - # Write dummy parameters.csv file in temporary directory - # in package input dir - tempdir = tempfile.TemporaryDirectory( - dir=os.path.join(pybamm.__path__[0], negative_electrodes_dir) - ) - with open(os.path.join(tempdir.name, "parameters.csv"), "w") as f: - f.write("hello") - - # Create a temporary directory to perform this test in isolation - sandbox_dir = tempfile.TemporaryDirectory() - - # Copy temporary dir in package to current working directory - cmd = ["pybamm_edit_parameter", "-f", chemistry] - subprocess.run(cmd, cwd=sandbox_dir.name) - - # Read and compare copied parameters.csv file - copied_path_parameters_file = os.path.join( - sandbox_dir.name, - chemistry, - "negative_electrodes", - os.path.basename(tempdir.name), - "parameters.csv", - ) - with open(copied_path_parameters_file, "r") as f: - content = f.read() - self.assertTrue(content == "hello") - - # Clean up temporary dicts - sandbox_dir.cleanup() - tempdir.cleanup() + def test_error(self): + with self.assertRaisesRegex(NotImplementedError, "deprecated"): + pybamm.add_parameter() + with self.assertRaisesRegex(NotImplementedError, "deprecated"): + pybamm.edit_parameter() + with self.assertRaisesRegex(NotImplementedError, "deprecated"): + pybamm.remove_parameter() if __name__ == "__main__": diff --git a/tests/unit/test_util.py b/tests/unit/test_util.py index d8b9810b1e..8647082e0e 100644 --- a/tests/unit/test_util.py +++ b/tests/unit/test_util.py @@ -25,71 +25,26 @@ class TestUtil(unittest.TestCase): """ def test_load_function(self): - # Test function load with absolute path - abs_test_path = os.path.join( - pybamm.root_dir(), - "pybamm", - "input", - "parameters", - "lithium_ion", - "negative_electrodes", - "graphite_Chen2020", - "graphite_LGM50_electrolyte_exchange_current_density_Chen2020.py", - ) - func = pybamm.load_function(abs_test_path) - self.assertEqual( - func, - pybamm.input.parameters.lithium_ion.negative_electrodes.graphite_Chen2020.graphite_LGM50_electrolyte_exchange_current_density_Chen2020.graphite_LGM50_electrolyte_exchange_current_density_Chen2020, # noqa - ) + function = "graphite_LGM50_electrolyte_exchange_current_density_Chen2020" # Test function load with relative path rel_test_path = os.path.join( - "pybamm", - "input", - "parameters", - "lithium_ion", - "negative_electrodes", - "graphite_Chen2020", - "graphite_LGM50_electrolyte_exchange_current_density_Chen2020.py", + "pybamm", "input", "parameters", "lithium_ion", "Chen2020" ) - func = pybamm.load_function(rel_test_path) + func = pybamm.load_function(rel_test_path, function) self.assertEqual( func, - pybamm.input.parameters.lithium_ion.negative_electrodes.graphite_Chen2020.graphite_LGM50_electrolyte_exchange_current_density_Chen2020.graphite_LGM50_electrolyte_exchange_current_density_Chen2020, # noqa + pybamm.input.parameters.lithium_ion.Chen2020.graphite_LGM50_electrolyte_exchange_current_density_Chen2020, # noqa ) - # Test function load for parameters in a directory having "pybamm" in its name - # create a new lithium_ion folder in the root PyBaMM directory - subprocess.run(["pybamm_edit_parameter", "lithium_ion"]) - - # path for a function in the created directory -> - # x/y/z/PyBaMM/lithium_ion/negative_electrode/ .... - test_path = os.path.join( - os.getcwd(), - "lithium_ion", - "negative_electrodes", - "graphite_Chen2020", - "graphite_LGM50_electrolyte_exchange_current_density_Chen2020.py", - ) - - # load the function - func = pybamm.load_function(test_path) - - # cannot directly do - lithium_ion.negative_electrodes.graphite_Chen2020 as - # lithium_ion is not a python module - module_object = importlib.import_module( - "lithium_ion.negative_electrodes.graphite_Chen2020.graphite_LGM50_electrolyte_exchange_current_density_Chen2020" # noqa - ) + # Test function load with absolute path + abs_test_path = os.path.join(pybamm.root_dir(), rel_test_path) + func = pybamm.load_function(abs_test_path, function) self.assertEqual( func, - getattr( - module_object, - "graphite_LGM50_electrolyte_exchange_current_density_Chen2020", - ), + pybamm.input.parameters.lithium_ion.Chen2020.graphite_LGM50_electrolyte_exchange_current_density_Chen2020, # noqa ) - shutil.rmtree("lithium_ion") - def test_rmse(self): self.assertEqual(pybamm.rmse(np.ones(5), np.zeros(5)), 1) self.assertEqual(pybamm.rmse(2 * np.ones(5), np.zeros(5)), 2) diff --git a/tox.ini b/tox.ini index e2a6002e0c..57bd58fc6d 100644 --- a/tox.ini +++ b/tox.ini @@ -135,4 +135,3 @@ source = pybamm # By default coverage data isn't collected in forked processes, see # https://coverage.readthedocs.io/en/coverage-5.3.1/subprocess.html concurrency = multiprocessing -ignore = "Ai2020_test.py" From ab551d4c58a909e868c682d76f22642dfe3e1b13 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Wed, 5 Oct 2022 19:03:29 -0400 Subject: [PATCH 15/28] #2334 fix parameter_values tests --- .../parameterization/parameter-values.ipynb | 51 ++++--------------- pybamm/parameters/parameter_values.py | 6 ++- .../test_parameters/test_parameter_values.py | 6 ++- 3 files changed, 18 insertions(+), 45 deletions(-) diff --git a/examples/notebooks/parameterization/parameter-values.ipynb b/examples/notebooks/parameterization/parameter-values.ipynb index f20c0a2d11..e7cf9421fb 100644 --- a/examples/notebooks/parameterization/parameter-values.ipynb +++ b/examples/notebooks/parameterization/parameter-values.ipynb @@ -139,7 +139,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We can input functions into the parameter values, either directly (note we bypass the check that the parameter already exists)" + "We can input functions into the parameter value (note we bypass the check that the parameter already exists)" ] }, { @@ -165,44 +165,6 @@ "print(\"parameter values are {}\".format(parameter_values))" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "or by using `pybamm.load_function` to load from a path to the function" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "parameter values are {'a': 4,\n", - " 'b': 5,\n", - " 'c': 6,\n", - " 'cube function': ,\n", - " 'square function': }\n" - ] - } - ], - "source": [ - "f = open(\"squared.py\",\"w+\")\n", - "f.write(\n", - "\"\"\"\n", - "def squared(x):\n", - " return x ** 2\n", - "\"\"\"\n", - ")\n", - "f.close()\n", - "parameter_values.update({\"square function\": pybamm.load_function(\"squared.py\")}, check_already_exists=False)\n", - "print(\"parameter values are {}\".format(parameter_values))\n", - "os.remove(\"squared.py\")" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -350,7 +312,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -512,7 +474,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3.9.13 ('conda_jl')", "language": "python", "name": "python3" }, @@ -526,7 +488,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.0" + "version": "3.9.13" }, "toc": { "base_numbering": 1, @@ -540,6 +502,11 @@ "toc_position": {}, "toc_section_display": true, "toc_window_display": true + }, + "vscode": { + "interpreter": { + "hash": "612adcc456652826e82b485a1edaef831aa6d5abc680d008e93d513dd8724f14" + } } }, "nbformat": 4, diff --git a/pybamm/parameters/parameter_values.py b/pybamm/parameters/parameter_values.py index 0cdaa76c82..b64db97013 100644 --- a/pybamm/parameters/parameter_values.py +++ b/pybamm/parameters/parameter_values.py @@ -211,7 +211,10 @@ def update_from_chemistry(self, chemistry): ) # Create path to component and load values component_path = os.path.join( - base_chemistry, component_group.replace(" ", "_") + "s", component + base_chemistry, + "testing_only", + component_group.replace(" ", "_") + "s", + component, ) file_path = self.find_parameter( os.path.join(component_path, "parameters.csv") @@ -1005,6 +1008,7 @@ def export_python_script(self, name, path=None): data_name = v[0] data_file_old = os.path.join( path, + "testing_only", component_group.replace(" ", "_") + "s", self.chemistry[component_group], f"{data_name}.csv", diff --git a/tests/unit/test_parameters/test_parameter_values.py b/tests/unit/test_parameters/test_parameter_values.py index 0105ef2967..6697fc8905 100644 --- a/tests/unit/test_parameters/test_parameter_values.py +++ b/tests/unit/test_parameters/test_parameter_values.py @@ -44,6 +44,7 @@ def test_read_parameters_csv(self): "input", "parameters", "lithium_ion", + "testing_only", "positive_electrodes", "lico2_Ai2020", "parameters.csv", @@ -61,7 +62,7 @@ def test_init(self): # from file param = pybamm.ParameterValues( - "lithium_ion/positive_electrodes/lico2_Ai2020/parameters.csv" + "lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/parameters.csv" ) self.assertEqual(param["Positive electrode porosity"], 0.32) @@ -73,6 +74,7 @@ def test_init(self): "input", "parameters", "lithium_ion", + "testing_only", "positive_electrodes", "lico2_Ai2020", "parameters.csv", @@ -109,7 +111,7 @@ def test_update(self): # converts to dict if not param = pybamm.ParameterValues("Ai2020") param_from_csv = pybamm.ParameterValues( - "lithium_ion/negative_electrodes/graphite_Ai2020/parameters.csv" + "lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/parameters.csv" ) param.update(param_from_csv) # equate values From 090cc1f83bc52efc059baac239f545d436535ad8 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Wed, 5 Oct 2022 19:04:42 -0400 Subject: [PATCH 16/28] #2334 fix landesfeind --- .../test_parameters/test_parameter_sets/test_Landesfeind2019.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/test_parameters/test_parameter_sets/test_Landesfeind2019.py b/tests/unit/test_parameters/test_parameter_sets/test_Landesfeind2019.py index eadfc4f959..83e17aa6de 100644 --- a/tests/unit/test_parameters/test_parameter_sets/test_Landesfeind2019.py +++ b/tests/unit/test_parameters/test_parameter_sets/test_Landesfeind2019.py @@ -35,7 +35,7 @@ def test_load_params(self): for solvent in ["EC_DMC_1_1", "EC_EMC_3_7", "EMC_FEC_19_1"]: root = pybamm.root_dir() p = ( - "pybamm/input/parameters/lithium_ion/electrolytes/lipf6_" + "pybamm/input/parameters/lithium_ion/testing_only/electrolytes/lipf6_" + solvent + "_Landesfeind2019/" ) From fbe4a2b00b1650a1af1a80b81910994fc5ac3fe8 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Wed, 5 Oct 2022 20:00:14 -0400 Subject: [PATCH 17/28] #2334 integration tests --- .../test_models/standard_output_tests.py | 11 +++++++++- .../base_lithium_ion_tests.py | 14 +------------ .../test_basic_half_cell_models.py | 16 ++------------- .../test_lithium_ion/test_yang2017.py | 20 +++++++++++++++++++ 4 files changed, 33 insertions(+), 28 deletions(-) create mode 100644 tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_yang2017.py diff --git a/tests/integration/test_models/standard_output_tests.py b/tests/integration/test_models/standard_output_tests.py index 7c7e5bf2ac..641caec961 100644 --- a/tests/integration/test_models/standard_output_tests.py +++ b/tests/integration/test_models/standard_output_tests.py @@ -674,6 +674,13 @@ def __init__(self, model, param, disc, solution, operating_condition): self.a_j_n_sei_av = solution[ "X-averaged negative electrode SEI volumetric interfacial current density" ] + self.a_j_n_pl = solution[ + "Negative electrode lithium plating volumetric interfacial current density" + ] + self.a_j_n_pl_av = solution[ + "X-averaged negative electrode lithium plating " + "volumetric interfacial current density" + ] self.i_s_n = solution["Negative electrode current density"] self.i_s_p = solution["Positive electrode current density"] @@ -687,7 +694,9 @@ def test_interfacial_current_average(self): np.testing.assert_array_almost_equal( np.mean( - self.a_j_n(self.t, self.x_n) + self.a_j_n_sei(self.t, self.x_n), + self.a_j_n(self.t, self.x_n) + + self.a_j_n_sei(self.t, self.x_n) + + self.a_j_n_pl(self.t, self.x_n), axis=0, ), self.i_cell / self.l_n, diff --git a/tests/integration/test_models/test_full_battery_models/test_lithium_ion/base_lithium_ion_tests.py b/tests/integration/test_models/test_full_battery_models/test_lithium_ion/base_lithium_ion_tests.py index 51b1eb395b..6d46766220 100644 --- a/tests/integration/test_models/test_full_battery_models/test_lithium_ion/base_lithium_ion_tests.py +++ b/tests/integration/test_models/test_full_battery_models/test_lithium_ion/base_lithium_ion_tests.py @@ -162,19 +162,7 @@ def test_irreversible_plating_with_porosity(self): "lithium plating": "irreversible", "lithium plating porosity change": "true", } - param = pybamm.ParameterValues( - { - "chemistry": "lithium_ion", - "cell": "LGM50_Chen2020", - "negative electrode": "graphite_Chen2020", - "separator": "separator_Chen2020", - "positive electrode": "nmc_Chen2020", - "electrolyte": "lipf6_Nyman2008", - "experiment": "1C_discharge_from_full_Chen2020", - "sei": "example", - "lithium plating": "okane2020_Li_plating", - } - ) + param = pybamm.ParameterValues("OKane2022") self.run_basic_processing_test(options, parameter_values=param) def test_sei_reaction_limited(self): diff --git a/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_basic_half_cell_models.py b/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_basic_half_cell_models.py index 7515afb4af..8b5751bb4a 100644 --- a/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_basic_half_cell_models.py +++ b/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_basic_half_cell_models.py @@ -37,7 +37,7 @@ def test_runs_Xu2019(self): solver = pybamm.CasadiSolver(mode="safe", atol=1e-6, rtol=1e-3) solver.solve(model, t_eval) - def test_runs_Chen2020(self): + def test_runs_OKane2022(self): # load model options = {"working electrode": "positive"} model = pybamm.lithium_ion.BasicDFNHalfCell(options=options) @@ -46,19 +46,7 @@ def test_runs_Chen2020(self): geometry = model.default_geometry # load parameter values - param = pybamm.ParameterValues( - { - "chemistry": "lithium_ion", - "cell": "LGM50_Chen2020", - "negative electrode": "graphite_Chen2020", - "separator": "separator_Chen2020", - "positive electrode": "nmc_Chen2020", - "electrolyte": "lipf6_Nyman2008", - "experiment": "1C_discharge_from_full_Chen2020", - "sei": "example", - "lithium plating": "okane2020_Li_plating", - } - ) + param = pybamm.ParameterValues("OKane2022") param["Current function [A]"] = 2.5 diff --git a/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_yang2017.py b/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_yang2017.py new file mode 100644 index 0000000000..c54d9e2aac --- /dev/null +++ b/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_yang2017.py @@ -0,0 +1,20 @@ +import pybamm +import unittest +import tests + + +class TestYang2017(unittest.TestCase): + def test_basic_processing(self): + model = pybamm.lithium_ion.Yang2017() + parameter_values = pybamm.ParameterValues("OKane2022") + modeltest = tests.StandardModelTest(model, parameter_values=parameter_values) + modeltest.test_all() + + +if __name__ == "__main__": + print("Add -v for more debug output") + import sys + + if "-v" in sys.argv: + debug = True + unittest.main() From 8c2d56181cf798118fcf75f31e2516e3f4cdcc80 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Thu, 6 Oct 2022 10:07:27 -0400 Subject: [PATCH 18/28] #2334 working on example tests, undelete update_parameter_sets_doc.py --- .../workflows/update_parameter_sets_doc.yml | 42 +++ ...utorial 4 - Setting parameter values.ipynb | 94 ++++--- .../notebooks/models/composite_particle.ipynb | 247 ++---------------- .../parameterization/parameter-values.ipynb | 3 +- .../print_model_parameter_combinations.py | 6 +- pybamm/parameters/parameter_sets.py | 220 ++++++++++++---- .../parameters/update_parameter_sets_doc.py | 114 ++++++++ .../test_simulation_with_experiment.py | 1 - .../test_lithium_ion/test_Yang2017.py | 1 - .../test_parameters/test_parameter_values.py | 4 +- .../test_parameters/test_parameters_cli.py | 6 - .../test_update_parameter_sets_doc.py | 66 +++++ tests/unit/test_util.py | 3 - 13 files changed, 470 insertions(+), 337 deletions(-) create mode 100644 .github/workflows/update_parameter_sets_doc.yml create mode 100644 pybamm/parameters/update_parameter_sets_doc.py create mode 100644 tests/unit/test_parameters/test_update_parameter_sets_doc.py diff --git a/.github/workflows/update_parameter_sets_doc.yml b/.github/workflows/update_parameter_sets_doc.yml new file mode 100644 index 0000000000..04497a5ce0 --- /dev/null +++ b/.github/workflows/update_parameter_sets_doc.yml @@ -0,0 +1,42 @@ +name: Update parameter_sets.py docstring + +on: + push: + branches: + - develop + paths: + - pybamm/parameters/parameter_sets.py + - pybamm/CITATIONS.txt + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: [3.8] + + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install wheel + pip install --editable . + pip install pybtex + - name: Update docstring + run: python pybamm/parameters/update_parameter_sets_doc.py + - name: Create Pull Request + uses: peter-evans/create-pull-request@v3 + with: + delete-branch: true + branch-suffix: short-commit-hash + commit-message: update parameter_sets docstring + title: Update parameter_sets.py docstring + body: | + Update docstring of parameter_sets.py + + Auto-generated pull request diff --git a/examples/notebooks/Getting Started/Tutorial 4 - Setting parameter values.ipynb b/examples/notebooks/Getting Started/Tutorial 4 - Setting parameter values.ipynb index 73e7d04de1..c40afdac77 100644 --- a/examples/notebooks/Getting Started/Tutorial 4 - Setting parameter values.ipynb +++ b/examples/notebooks/Getting Started/Tutorial 4 - Setting parameter values.ipynb @@ -77,14 +77,15 @@ " 'Bulk solvent concentration [mol.m-3]': 2636.0,\n", " 'Cation transference number': 0.2594,\n", " 'Cell cooling surface area [m2]': 0.00531,\n", + " 'Cell thermal expansion coefficient [m.K-1]': 1.1e-06,\n", " 'Cell volume [m3]': 2.42e-05,\n", " 'Current function [A]': 5.0,\n", " 'EC diffusivity [m2.s-1]': 2e-18,\n", " 'EC initial concentration in electrolyte [mol.m-3]': 4541.0,\n", " 'Electrode height [m]': 0.065,\n", " 'Electrode width [m]': 1.58,\n", - " 'Electrolyte conductivity [S.m-1]': ,\n", - " 'Electrolyte diffusivity [m2.s-1]': ,\n", + " 'Electrolyte conductivity [S.m-1]': ,\n", + " 'Electrolyte diffusivity [m2.s-1]': ,\n", " 'Initial concentration in electrolyte [mol.m-3]': 1000.0,\n", " 'Initial concentration in negative electrode [mol.m-3]': 29866.0,\n", " 'Initial concentration in positive electrode [mol.m-3]': 17038.0,\n", @@ -107,7 +108,7 @@ " 'Negative current collector thickness [m]': 1.2e-05,\n", " 'Negative electrode Bruggeman coefficient (electrode)': 1.5,\n", " 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5,\n", - " 'Negative electrode OCP [V]': ,\n", + " 'Negative electrode OCP [V]': ,\n", " 'Negative electrode OCP entropic change [V.K-1]': 0.0,\n", " 'Negative electrode active material volume fraction': 0.75,\n", " 'Negative electrode cation signed stoichiometry': -1.0,\n", @@ -117,7 +118,7 @@ " 'Negative electrode diffusivity [m2.s-1]': 3.3e-14,\n", " 'Negative electrode double-layer capacity [F.m-2]': 0.2,\n", " 'Negative electrode electrons in reaction': 1.0,\n", - " 'Negative electrode exchange-current density [A.m-2]': ,\n", + " 'Negative electrode exchange-current density [A.m-2]': ,\n", " 'Negative electrode porosity': 0.25,\n", " 'Negative electrode reaction-driven LAM factor [m3.mol-1]': 0.0,\n", " 'Negative electrode specific heat capacity [J.kg-1.K-1]': 700.0,\n", @@ -137,7 +138,7 @@ " 'Positive current collector thickness [m]': 1.6e-05,\n", " 'Positive electrode Bruggeman coefficient (electrode)': 1.5,\n", " 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5,\n", - " 'Positive electrode OCP [V]': ,\n", + " 'Positive electrode OCP [V]': ,\n", " 'Positive electrode OCP entropic change [V.K-1]': 0.0,\n", " 'Positive electrode active material volume fraction': 0.665,\n", " 'Positive electrode cation signed stoichiometry': -1.0,\n", @@ -147,15 +148,16 @@ " 'Positive electrode diffusivity [m2.s-1]': 4e-15,\n", " 'Positive electrode double-layer capacity [F.m-2]': 0.2,\n", " 'Positive electrode electrons in reaction': 1.0,\n", - " 'Positive electrode exchange-current density [A.m-2]': ,\n", + " 'Positive electrode exchange-current density [A.m-2]': ,\n", " 'Positive electrode porosity': 0.335,\n", " 'Positive electrode reaction-driven LAM factor [m3.mol-1]': 0.0,\n", " 'Positive electrode specific heat capacity [J.kg-1.K-1]': 700.0,\n", " 'Positive electrode thermal conductivity [W.m-1.K-1]': 2.1,\n", " 'Positive electrode thickness [m]': 7.56e-05,\n", " 'Positive particle radius [m]': 5.22e-06,\n", - " 'Ratio of inner and outer SEI exchange current densities': 1.0,\n", + " 'Ratio of lithium moles to SEI moles': 2.0,\n", " 'Reference temperature [K]': 298.15,\n", + " 'SEI growth activation energy [J.mol-1]': 0.0,\n", " 'SEI kinetic rate constant [m.s-1]': 1e-12,\n", " 'SEI open-circuit potential [V]': 0.4,\n", " 'SEI reaction exchange current density [A.m-2]': 1.5e-07,\n", @@ -169,7 +171,8 @@ " 'Total heat transfer coefficient [W.m-2.K-1]': 10.0,\n", " 'Typical current [A]': 5.0,\n", " 'Typical electrolyte concentration [mol.m-3]': 1000.0,\n", - " 'Upper voltage cut-off [V]': 4.2}" + " 'Upper voltage cut-off [V]': 4.2,\n", + " 'citations': ['Chen2020']}" ] }, "execution_count": 3, @@ -198,8 +201,8 @@ "output_type": "stream", "text": [ "EC initial concentration in electrolyte [mol.m-3]\t4541.0\n", - "Electrolyte conductivity [S.m-1]\t\n", - "Electrolyte diffusivity [m2.s-1]\t\n", + "Electrolyte conductivity [S.m-1]\t\n", + "Electrolyte diffusivity [m2.s-1]\t\n", "Initial concentration in electrolyte [mol.m-3]\t1000.0\n", "Negative electrode Bruggeman coefficient (electrolyte)\t1.5\n", "Positive electrode Bruggeman coefficient (electrolyte)\t1.5\n", @@ -229,12 +232,12 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "59900e1b574744e4828e53c79375a21d", + "model_id": "df9a1674a5644448b4393864a0533e10", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "interactive(children=(FloatSlider(value=0.0, description='t', max=3554.1817016731093, step=35.541817016731095)…" + "interactive(children=(FloatSlider(value=0.0, description='t', max=3554.1847186165564, step=35.54184718616556),…" ] }, "metadata": {}, @@ -243,7 +246,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 5, @@ -283,12 +286,12 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "model = pybamm.lithium_ion.DFN()\n", - "parameter_values = pybamm.ParameterValues(chemistry=pybamm.parameter_sets.Chen2020)" + "parameter_values = pybamm.ParameterValues(\"Chen2020\")" ] }, { @@ -300,7 +303,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -316,18 +319,18 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "87a62972f4a140b199ac8e09a3a261de", + "model_id": "4b7cb49d27bd4a9490af4b8db4703208", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "interactive(children=(FloatSlider(value=0.0, description='t', max=1724.4256164479839, step=17.24425616447984),…" + "interactive(children=(FloatSlider(value=0.0, description='t', max=1701.48201799429, step=17.014820179942898), …" ] }, "metadata": {}, @@ -336,10 +339,10 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 14, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -373,7 +376,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -399,18 +402,18 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "ee09003547434fb683ea65eb71023f4a", + "model_id": "3a75b81b2efa41e589c6e7b2b3eea9c0", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "interactive(children=(FloatSlider(value=0.0, description='t', max=97.69494263343306, step=0.9769494263343306),…" + "interactive(children=(FloatSlider(value=0.0, description='t', max=97.84206605173407, step=0.9784206605173407),…" ] }, "metadata": {}, @@ -419,10 +422,10 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 16, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -450,7 +453,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -471,18 +474,18 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "a1f7e953b7fc460fa000f1db8a6c41d3", + "model_id": "533d0807b902446882bd219335ec1d64", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "interactive(children=(FloatSlider(value=0.0, description='t', max=35.8755487989083, step=0.35875548798908297),…" + "interactive(children=(FloatSlider(value=0.0, description='t', max=36.02438855650833, step=0.3602438855650833),…" ] }, "metadata": {}, @@ -491,10 +494,10 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 18, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -525,19 +528,21 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[1] Joel A. E. Andersson, Joris Gillis, Greg Horn, James B. Rawlings, and Moritz Diehl. CasADi – A software framework for nonlinear optimization and optimal control. Mathematical Programming Computation, 11(1):1–36, 2019. doi:10.1007/s12532-018-0139-4.\n", - "[2] Chang-Hui Chen, Ferran Brosa Planella, Kieran O'Regan, Dominika Gastol, W. Dhammika Widanage, and Emma Kendrick. Development of Experimental Techniques for Parameterization of Multi-scale Lithium-ion Battery Models. Journal of The Electrochemical Society, 167(8):080534, 2020. doi:10.1149/1945-7111/ab9050.\n", - "[3] Marc Doyle, Thomas F. Fuller, and John Newman. Modeling of galvanostatic charge and discharge of the lithium/polymer/insertion cell. Journal of the Electrochemical society, 140(6):1526–1533, 1993. doi:10.1149/1.2221597.\n", - "[4] Charles R. Harris, K. Jarrod Millman, Stéfan J. van der Walt, Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, Julian Taylor, Sebastian Berg, Nathaniel J. Smith, and others. Array programming with NumPy. Nature, 585(7825):357–362, 2020. doi:10.1038/s41586-020-2649-2.\n", - "[5] Scott G. Marquis, Valentin Sulzer, Robert Timms, Colin P. Please, and S. Jon Chapman. An asymptotic derivation of a single particle model with electrolyte. Journal of The Electrochemical Society, 166(15):A3693–A3706, 2019. doi:10.1149/2.0341915jes.\n", - "[6] Valentin Sulzer, Scott G. Marquis, Robert Timms, Martin Robinson, and S. Jon Chapman. Python Battery Mathematical Modelling (PyBaMM). Journal of Open Research Software, 9(1):14, 2021. doi:10.5334/jors.309.\n", + "[1] Weilong Ai, Ludwig Kraft, Johannes Sturm, Andreas Jossen, and Billy Wu. Electrochemical thermal-mechanical modelling of stress inhomogeneity in lithium-ion pouch cells. Journal of The Electrochemical Society, 167(1):013512, 2019. doi:10.1149/2.0122001JES.\n", + "[2] Joel A. E. Andersson, Joris Gillis, Greg Horn, James B. Rawlings, and Moritz Diehl. CasADi – A software framework for nonlinear optimization and optimal control. Mathematical Programming Computation, 11(1):1–36, 2019. doi:10.1007/s12532-018-0139-4.\n", + "[3] Chang-Hui Chen, Ferran Brosa Planella, Kieran O'Regan, Dominika Gastol, W. Dhammika Widanage, and Emma Kendrick. Development of Experimental Techniques for Parameterization of Multi-scale Lithium-ion Battery Models. Journal of The Electrochemical Society, 167(8):080534, 2020. doi:10.1149/1945-7111/ab9050.\n", + "[4] Rutooj Deshpande, Mark Verbrugge, Yang-Tse Cheng, John Wang, and Ping Liu. Battery cycle life prediction with coupled chemical degradation and fatigue mechanics. Journal of the Electrochemical Society, 159(10):A1730, 2012. doi:10.1149/2.049210jes.\n", + "[5] Marc Doyle, Thomas F. Fuller, and John Newman. Modeling of galvanostatic charge and discharge of the lithium/polymer/insertion cell. Journal of the Electrochemical society, 140(6):1526–1533, 1993. doi:10.1149/1.2221597.\n", + "[6] Charles R. Harris, K. Jarrod Millman, Stéfan J. van der Walt, Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, Julian Taylor, Sebastian Berg, Nathaniel J. Smith, and others. Array programming with NumPy. Nature, 585(7825):357–362, 2020. doi:10.1038/s41586-020-2649-2.\n", + "[7] Scott G. Marquis, Valentin Sulzer, Robert Timms, Colin P. Please, and S. Jon Chapman. An asymptotic derivation of a single particle model with electrolyte. Journal of The Electrochemical Society, 166(15):A3693–A3706, 2019. doi:10.1149/2.0341915jes.\n", + "[8] Valentin Sulzer, Scott G. Marquis, Robert Timms, Martin Robinson, and S. Jon Chapman. Python Battery Mathematical Modelling (PyBaMM). Journal of Open Research Software, 9(1):14, 2021. doi:10.5334/jors.309.\n", "\n" ] } @@ -549,7 +554,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3.9.13 ('conda_jl')", "language": "python", "name": "python3" }, @@ -563,7 +568,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.0" + "version": "3.9.13" }, "toc": { "base_numbering": 1, @@ -577,6 +582,11 @@ "toc_position": {}, "toc_section_display": true, "toc_window_display": true + }, + "vscode": { + "interpreter": { + "hash": "612adcc456652826e82b485a1edaef831aa6d5abc680d008e93d513dd8724f14" + } } }, "nbformat": 4, diff --git a/examples/notebooks/models/composite_particle.ipynb b/examples/notebooks/models/composite_particle.ipynb index 6d7a1392a9..b4735dc533 100644 --- a/examples/notebooks/models/composite_particle.ipynb +++ b/examples/notebooks/models/composite_particle.ipynb @@ -90,224 +90,6 @@ "})" ] }, - { - "cell_type": "code", - "execution_count": 3, - "id": "7bc190eb", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'chemistry': 'lithium_ion',\n", - " 'cell': 'LGM50_Chen2020',\n", - " 'negative electrode': 'graphite_Chen2020_composite',\n", - " 'separator': 'separator_Chen2020',\n", - " 'positive electrode': 'nmc_Chen2020',\n", - " 'electrolyte': 'lipf6_Nyman2008',\n", - " 'experiment': '1C_discharge_from_full_Chen2020',\n", - " 'sei': 'example',\n", - " 'citation': ['Chen2020', 'Ai2022']}" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pybamm.parameter_sets.Chen2020_composite" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "a97ddeac", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'1 + dlnf/dlnc': 1.0,\n", - " 'Ambient temperature [K]': 298.15,\n", - " 'Bulk solvent concentration [mol.m-3]': 2636.0,\n", - " 'Cation transference number': 0.2594,\n", - " 'Cell cooling surface area [m2]': 0.00531,\n", - " 'Cell thermal expansion coefficient [m.K-1]': 1.1e-06,\n", - " 'Cell volume [m3]': 2.42e-05,\n", - " 'Current function [A]': 5.0,\n", - " 'EC diffusivity [m2.s-1]': 2e-18,\n", - " 'EC initial concentration in electrolyte [mol.m-3]': 4541.0,\n", - " 'Electrode height [m]': 0.065,\n", - " 'Electrode width [m]': 1.58,\n", - " 'Electrolyte conductivity [S.m-1]': ,\n", - " 'Electrolyte diffusivity [m2.s-1]': ,\n", - " 'Initial concentration in electrolyte [mol.m-3]': 1000.0,\n", - " 'Initial concentration in negative electrode [mol.m-3]': 29866.0,\n", - " 'Initial concentration in positive electrode [mol.m-3]': 17038.0,\n", - " 'Initial inner SEI thickness [m]': 2.5e-09,\n", - " 'Initial outer SEI thickness [m]': 2.5e-09,\n", - " 'Initial temperature [K]': 298.15,\n", - " 'Inner SEI electron conductivity [S.m-1]': 8.95e-14,\n", - " 'Inner SEI lithium interstitial diffusivity [m2.s-1]': 1e-20,\n", - " 'Inner SEI open-circuit potential [V]': 0.1,\n", - " 'Inner SEI partial molar volume [m3.mol-1]': 9.585e-05,\n", - " 'Inner SEI reaction proportion': 0.5,\n", - " 'Lithium interstitial reference concentration [mol.m-3]': 15.0,\n", - " 'Lower voltage cut-off [V]': 2.5,\n", - " 'Maximum concentration in positive electrode [mol.m-3]': 63104.0,\n", - " 'Negative current collector conductivity [S.m-1]': 58411000.0,\n", - " 'Negative current collector density [kg.m-3]': 8960.0,\n", - " 'Negative current collector specific heat capacity [J.kg-1.K-1]': 385.0,\n", - " 'Negative current collector thermal conductivity [W.m-1.K-1]': 401.0,\n", - " 'Negative current collector thickness [m]': 1.2e-05,\n", - " 'Negative electrode Bruggeman coefficient (electrode)': 1.5,\n", - " 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5,\n", - " 'Negative electrode cation signed stoichiometry': -1.0,\n", - " 'Negative electrode charge transfer coefficient': 0.5,\n", - " 'Negative electrode conductivity [S.m-1]': 215.0,\n", - " 'Negative electrode double-layer capacity [F.m-2]': 0.2,\n", - " 'Negative electrode porosity': 0.25,\n", - " 'Negative electrode reaction-driven LAM factor [m3.mol-1]': 0.0,\n", - " 'Negative electrode specific heat capacity [J.kg-1.K-1]': 700.0,\n", - " 'Negative electrode thermal conductivity [W.m-1.K-1]': 1.7,\n", - " 'Negative electrode thickness [m]': 8.52e-05,\n", - " 'Nominal cell capacity [A.h]': 5.0,\n", - " 'Number of cells connected in series to make a battery': 1.0,\n", - " 'Number of electrodes connected in parallel to make a cell': 1.0,\n", - " 'Outer SEI open-circuit potential [V]': 0.8,\n", - " 'Outer SEI partial molar volume [m3.mol-1]': 9.585e-05,\n", - " 'Outer SEI solvent diffusivity [m2.s-1]': 2.5000000000000002e-22,\n", - " 'Positive current collector conductivity [S.m-1]': 36914000.0,\n", - " 'Positive current collector density [kg.m-3]': 2700.0,\n", - " 'Positive current collector specific heat capacity [J.kg-1.K-1]': 897.0,\n", - " 'Positive current collector thermal conductivity [W.m-1.K-1]': 237.0,\n", - " 'Positive current collector thickness [m]': 1.6e-05,\n", - " 'Positive electrode Bruggeman coefficient (electrode)': 1.5,\n", - " 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5,\n", - " 'Positive electrode OCP [V]': ,\n", - " 'Positive electrode OCP entropic change [V.K-1]': 0.0,\n", - " 'Positive electrode active material volume fraction': 0.665,\n", - " 'Positive electrode cation signed stoichiometry': -1.0,\n", - " 'Positive electrode charge transfer coefficient': 0.5,\n", - " 'Positive electrode conductivity [S.m-1]': 0.18,\n", - " 'Positive electrode density [kg.m-3]': 3262.0,\n", - " 'Positive electrode diffusivity [m2.s-1]': 4e-15,\n", - " 'Positive electrode double-layer capacity [F.m-2]': 0.2,\n", - " 'Positive electrode electrons in reaction': 1.0,\n", - " 'Positive electrode exchange-current density [A.m-2]': ,\n", - " 'Positive electrode porosity': 0.335,\n", - " 'Positive electrode reaction-driven LAM factor [m3.mol-1]': 0.0,\n", - " 'Positive electrode specific heat capacity [J.kg-1.K-1]': 700.0,\n", - " 'Positive electrode thermal conductivity [W.m-1.K-1]': 2.1,\n", - " 'Positive electrode thickness [m]': 7.56e-05,\n", - " 'Positive particle radius [m]': 5.22e-06,\n", - " 'Primary: Initial concentration in negative electrode [mol.m-3]': 23000,\n", - " 'Primary: Maximum concentration in negative electrode [mol.m-3]': 28700,\n", - " 'Primary: Negative electrode OCP [V]': ('graphite_ocp_Enertech_Ai2020',\n", - " ([array([0.00000000e+00, 5.00000000e-04, 1.27041000e-03, 1.52479000e-03,\n", - " 1.90595000e-03, 2.22355800e-03, 4.06054700e-03, 4.82015100e-03,\n", - " 6.46394300e-03, 7.41337000e-03, 8.61650600e-03, 9.12341700e-03,\n", - " 1.07682260e-02, 1.26650460e-02, 1.41183440e-02, 1.77867520e-02,\n", - " 2.06946900e-02, 2.39837990e-02, 3.05021750e-02, 3.60011350e-02,\n", - " 3.96066620e-02, 5.91480830e-02, 6.12979420e-02, 7.13498330e-02,\n", - " 8.02655260e-02, 1.19208079e-01, 1.28120548e-01, 1.34253707e-01,\n", - " 1.41584594e-01, 1.50874177e-01, 1.60609131e-01, 1.70345957e-01,\n", - " 1.89747769e-01, 2.09222253e-01, 2.19017730e-01, 2.28756579e-01,\n", - " 2.38552575e-01, 2.48349231e-01, 2.58084023e-01, 2.67821184e-01,\n", - " 2.87415350e-01, 2.97209811e-01, 3.07004942e-01, 3.16798396e-01,\n", - " 3.26534032e-01, 3.36321558e-01, 3.46061758e-01, 3.55856392e-01,\n", - " 3.65593044e-01, 3.75388012e-01, 3.85120781e-01, 3.94915577e-01,\n", - " 4.04717479e-01, 4.14512102e-01, 4.24244871e-01, 4.34039331e-01,\n", - " 4.43770240e-01, 4.53564862e-01, 4.63298139e-01, 4.73034456e-01,\n", - " 4.82766544e-01, 4.92564552e-01, 5.02302892e-01, 5.12042595e-01,\n", - " 5.21833161e-01, 5.31572182e-01, 5.41369033e-01, 5.51104831e-01,\n", - " 5.60899800e-01, 5.70635608e-01, 5.80434806e-01, 5.90235692e-01,\n", - " 5.99977407e-01, 6.09716266e-01, 6.19517822e-01, 6.29313635e-01,\n", - " 6.39049108e-01, 6.48790152e-01, 6.58584104e-01, 6.68320248e-01,\n", - " 6.78055040e-01, 6.87851869e-01, 6.97649380e-01, 7.07389072e-01,\n", - " 7.17188097e-01, 7.26977148e-01, 7.36776336e-01, 7.46515866e-01,\n", - " 7.56259106e-01, 7.66055091e-01, 7.75789039e-01, 7.85537861e-01,\n", - " 7.95329790e-01, 8.05080646e-01, 8.14827099e-01, 8.24570003e-01,\n", - " 8.34370889e-01, 8.44173289e-01, 8.53913187e-01, 8.63650510e-01,\n", - " 8.73392073e-01, 8.83126865e-01, 8.92918286e-01, 9.02708516e-01,\n", - " 9.12443308e-01, 9.22232533e-01, 9.32019724e-01, 9.41812832e-01,\n", - " 9.51602392e-01, 9.61392795e-01, 9.70177652e-01, 9.76051358e-01,\n", - " 9.80413449e-01, 9.83887804e-01, 9.86792703e-01, 9.89255096e-01,\n", - " 9.91401407e-01, 9.93359929e-01, 9.95130154e-01, 9.96776304e-01,\n", - " 9.98229440e-01, 9.99241066e-01, 9.99746961e-01, 9.99936448e-01,\n", - " 1.00000000e+00])],\n", - " array([3.5 , 3. , 1.04 , 1.01 , 0.97265384,\n", - " 0.94249055, 0.81624059, 0.78028093, 0.71896262, 0.69137476,\n", - " 0.66139178, 0.64996223, 0.6165173 , 0.58331086, 0.56083078,\n", - " 0.51243948, 0.48025136, 0.44849587, 0.39598881, 0.35950768,\n", - " 0.33847798, 0.25631956, 0.25117361, 0.23605532, 0.23100922,\n", - " 0.2232966 , 0.21828424, 0.21327386, 0.20822836, 0.20320974,\n", - " 0.19862098, 0.19381638, 0.18416691, 0.17679053, 0.17383044,\n", - " 0.17096326, 0.1679035 , 0.16464998, 0.16149133, 0.15859383,\n", - " 0.15339916, 0.15100232, 0.14886213, 0.14691891, 0.14532814,\n", - " 0.14400211, 0.14290212, 0.14201426, 0.14131601, 0.1407591 ,\n", - " 0.14031432, 0.13994232, 0.13961785, 0.13932541, 0.13905101,\n", - " 0.1387793 , 0.13851741, 0.1382589 , 0.13798129, 0.13767223,\n", - " 0.13732933, 0.13690322, 0.13639024, 0.13575758, 0.1349471 ,\n", - " 0.13392324, 0.13262168, 0.13098947, 0.12896492, 0.12654999,\n", - " 0.12374288, 0.12077083, 0.11792963, 0.11537998, 0.11320542,\n", - " 0.11136648, 0.10985549, 0.10857895, 0.10752068, 0.10663254,\n", - " 0.10589376, 0.10526061, 0.10471319, 0.10425437, 0.10384562,\n", - " 0.10347712, 0.10315393, 0.10285654, 0.10258744, 0.10233828,\n", - " 0.10210199, 0.1018809 , 0.10167642, 0.10146588, 0.10126417,\n", - " 0.10106263, 0.10087041, 0.10068096, 0.10048922, 0.10030044,\n", - " 0.10009972, 0.0998771 , 0.09962899, 0.09933262, 0.09895842,\n", - " 0.09844254, 0.09768364, 0.096492 , 0.09451079, 0.09113682,\n", - " 0.08611519, 0.08107875, 0.07604037, 0.07099153, 0.06589833,\n", - " 0.06084405, 0.05581012, 0.0506707 , 0.0455624 , 0.04039266,\n", - " 0.03526127, 0.03024266, 0.02485077, 0.0192515 , 0.00499468]))),\n", - " 'Primary: Negative electrode OCP entropic change [V.K-1]': 0.0,\n", - " 'Primary: Negative electrode active material volume fraction': 0.75,\n", - " 'Primary: Negative electrode density [kg.m-3]': 1657.0,\n", - " 'Primary: Negative electrode diffusivity [m2.s-1]': 5.5e-14,\n", - " 'Primary: Negative electrode electrons in reaction': 1.0,\n", - " 'Primary: Negative electrode exchange-current density [A.m-2]': ,\n", - " 'Primary: Negative particle radius [m]': 5.86e-06,\n", - " 'Ratio of lithium moles to SEI moles': 2.0,\n", - " 'Reference temperature [K]': 298.15,\n", - " 'SEI growth activation energy [J.mol-1]': 0.0,\n", - " 'SEI kinetic rate constant [m.s-1]': 1e-12,\n", - " 'SEI open-circuit potential [V]': 0.4,\n", - " 'SEI reaction exchange current density [A.m-2]': 1.5e-07,\n", - " 'SEI resistivity [Ohm.m]': 200000.0,\n", - " 'Secondary: Initial concentration in negative electrode [mol.m-3]': 277000,\n", - " 'Secondary: Maximum concentration in negative electrode [mol.m-3]': 278000,\n", - " 'Secondary: Negative electrode OCP entropic change [V.K-1]': 0.0,\n", - " 'Secondary: Negative electrode active material volume fraction': 0.015,\n", - " 'Secondary: Negative electrode delithiation OCP [V]': ,\n", - " 'Secondary: Negative electrode density [kg.m-3]': 2650.0,\n", - " 'Secondary: Negative electrode diffusivity [m2.s-1]': 1.67e-14,\n", - " 'Secondary: Negative electrode electrons in reaction': 1.0,\n", - " 'Secondary: Negative electrode exchange-current density [A.m-2]': ,\n", - " 'Secondary: Negative electrode lithiation OCP [V]': ,\n", - " 'Secondary: Negative particle radius [m]': 1.52e-06,\n", - " 'Separator Bruggeman coefficient (electrolyte)': 1.5,\n", - " 'Separator density [kg.m-3]': 397.0,\n", - " 'Separator porosity': 0.47,\n", - " 'Separator specific heat capacity [J.kg-1.K-1]': 700.0,\n", - " 'Separator thermal conductivity [W.m-1.K-1]': 0.16,\n", - " 'Separator thickness [m]': 1.2e-05,\n", - " 'Total heat transfer coefficient [W.m-2.K-1]': 10.0,\n", - " 'Typical current [A]': 5.0,\n", - " 'Typical electrolyte concentration [mol.m-3]': 1000.0,\n", - " 'Upper voltage cut-off [V]': 4.5}" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "param" - ] - }, { "cell_type": "markdown", "id": "cf194af2", @@ -484,7 +266,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -530,7 +312,7 @@ }, { "data": { - "image/png": "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7JVO6l736l5X6w1Sd7c/I/UesG7dOgA+/fRTp+2KojhmyHXVpfU8LklPTyc4OLjEPsVHN5a2zyWDBw92miPL3RGhV+Jo0soida97da+r9Qape7WNHF+4cKHeQ8oUHR1NcnIyKSkphISEsGXLFh5//HGnfbp168batWvp06cPR44cwd/fv8zEIYQQouq5NVfV3r17SUxM5MKFC0yZMoVjx46Rl5en+1YVwK+//sp7772HqqoMGDCAW2+91XFVExcXh6ZpxMfHs2fPHry9vRk/fjzR0dG6yxFCCFFJNJ1Wr16tTZgwQfvyyy+10aNHa5qmaadOndKeffZZvaeqsSZPnuzpEDxG6l731NV6a5rU3V26R46vXr2a6dOnM2LECMd4joiICLdnohVCCHFl0Z048vPzS7TEW61Wx3ocQgghajfdiSM2NpavvvrKaduaNWto3759ZcXkcTVh9UJPkbrXPXW13iB1d5fuxvHz588zZ84csrOzycjIICwsDH9/fyZPnkxQUJDbgQghhLgyuNWrStM0kpKSSEtLw2w2ExMT42jvEEIIUbvpThwrVqygb9++xMTEVFVM1aauzsxbXr1/++035s6dS1hYGAA9evTg9ttv90CklW/RokX8+uuvNGjQgPnz55d4vba+5+XVuza/52lpaSxcuJDMzEwURWHw4MHccMMNTvvU1vfdlbq79d7r7Ya1bNky7aGHHtIee+wxbdWqVdoff/zhdpcuT7LZbNqECRO0s2fPahaLRfvnP/+pnT592mmfX375RZs5c6amqqp26NAhberUqR6KtvK4Uu99+/Zps2bN8lCEVeu3337Tjh49qj311FOlvl4b33NNK7/etfk9z8jI0I4ePappmqbl5eVpjz/+eJ34v65prtXdnfde9/2lMWPGsHjxYv7xj3+QlpbGs88+y+TJk/n222/1nsqj6urMvK7UuzZr164dgYGBZb5eG99zKL/etVlwcLDj6sHPz4+IiIgSE6XW1vfdlbq7w62GCYPBQMeOHRk/fjzz58+nXr16fPDBBxUOpjrV1Zl5Xak3wOHDh3n66ad5+eWX69R68rXxPXdVXXjPU1JSOH78eIlb7XXhfS+r7qD/vXdr8EVBQQE7duwgMTGR/fv3065dOx599FF3TuUxWiXPzHulcKVOLVu2ZNGiRfj6+vLrr78yb9483nzzzeoK0aNq43vuirrwnhcUFDB//nzuv/9+/P39nV6r7e/75eruznuv+4rj1Vdf5cEHH+SHH36ga9euLFy4kKlTp9KvXz+9p/Koyp6Z90rhSr39/f3x9fUFoEuXLthsNrKysqo1Tk+pje+5K2r7e261Wpk/fz7XXnstPXr0KPF6bX7fy6u7O++97sQRFRXFa6+9xgsvvEBcXBz169cH7KsDXkmKz8xrtVrZsmUL3bp1c9qnW7dubNy4EU3TOHz4cK2YmdeVemdmZjq+gSUlJaGqKvXq1fNEuNWuNr7nrqjN77mmaSxZsoSIiAhuvPHGUvepre+7K3V35713axxHcadOneKnn34iMTGRpUuXVuRU1a6uzsxbXr3Xrl3LunXrMBqNeHt7M3r0aNq0aePhqCvH66+/zv79+8nOzqZBgwaMHDkSq9UK1O73vLx61+b3/ODBgzz33HM0a9bMcfvp7rvvdlxh1Ob33ZW6u/Peu5U4srKy2Lx5Mxs2bODEiRPExsbyt7/9jV69erlRNSGEEFcSlxvHrVYrP//8Mz/99BN79uwhPDycPn36kJqaypNPPkmDBg2qMk4hhBA1hMuJ48EHH8RgMNC/f39Gjhzp6Bt86RaHEEKIusHlxvHmzZuTm5tLUlISR48eJScnpyrjEkIIUUPpauNITU1lw4YNbNy4kbS0NDp27MiBAwd47bXXCAkJqco4hRBC1BBu96o6ePAgGzZsYOvWrRiNRgYMGMB9991X2fEJIYSoYSrcHbeoqIgdO3awceNGnnnmmcqKSwghRA1V4cQhRF3y1FNP8cADD1T5ipcLFy5k8+bNhISEsHDhQgCef/55rr32WgYNGlRif4vFwtixY7Fardx8883cddddVRqfqNtkoXAhihk1apTjcVFRESaTybFI2UMPPcSrr75abbHoSQBeXl588MEHjiQjRFWSxCFEMcVneX700Ud5+OGH6dixowcjEqLmkcQhhA7Fk8knn3zC77//jslk4ueff6Zhw4ZMmjSJ7du389133+Hl5cW4ceO4+uqrAcjLy+O9995j165dKIrCgAEDGDlypK5ll1NTU5k+fTonT56kdevWPP7444754oSoLrJQuBAV8Msvv9CvXz+WL19Oy5YtmTlzpmNiudtuu423337bse+CBQswGo28+eabzJ07lz179vDDDz/oKi8xMZFHHnmEd999F6vVyn//+9/KrpIQ5ZLEIUQFtG3blk6dOmE0GunZsydZWVmMGDECk8nkmJInNzeXzMxMdu/ezf3334+vry8NGjRg2LBhbNmyRVd51113HU2aNMHb25tevXpx4sSJqqmYEJcht6qEqIDic7R5e3tTv359x60nb29vwL6Izvnz57HZbDz00EOO/TVNc1qN0RVBQUGOxz4+PhQUFFQgeiHcI4lDiGpgNpsxmUzEx8djNBo9HY4QFSK3qoSoBsHBwVx99dW8//775OXloaoqZ8+eZf/+/Z4OTQjd5IpDiGoyYcIEVq5cyVNPPUV+fj6NGjXi5ptv9nRYQugmI8eFqIGWLFlCYmIiQUFBvPXWW+Xub7FYePDBB7HZbAwfPpw77rijGqIUdZUkDiGEELpIG4cQQghdJHEIIYTQRRKHEEIIXSRxCCGE0EUShxBCCF0kcQghhNBFEocQQghd/h+1maZZuXSs+gAAAABJRU5ErkJggg==\n", + "image/png": "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7JVO6l736l5X6w1Sd7c/I/UesG7dOgA+/fRTp+2KojhmyHXVpfU8LklPTyc4OLjEPsVHN5a2zyWDBw92miPL3RGhV+Jo0soida97da+r9Qape7WNHF+4cKHeQ8oUHR1NcnIyKSkphISEsGXLFh5//HGnfbp168batWvp06cPR44cwd/fv8zEIYQQouq5NVfV3r17SUxM5MKFC0yZMoVjx46Rl5en+1YVwK+//sp7772HqqoMGDCAW2+91XFVExcXh6ZpxMfHs2fPHry9vRk/fjzR0dG6yxFCCFFJNJ1Wr16tTZgwQfvyyy+10aNHa5qmaadOndKeffZZvaeqsSZPnuzpEDxG6l731NV6a5rU3V26R46vXr2a6dOnM2LECMd4joiICLdnohVCCHFl0Z048vPzS7TEW61Wx3ocQgghajfdiSM2NpavvvrKaduaNWto3759ZcXkcTVh9UJPkbrXPXW13iB1d5fuxvHz588zZ84csrOzycjIICwsDH9/fyZPnkxQUJDbgQghhLgyuNWrStM0kpKSSEtLw2w2ExMT42jvEEIIUbvpThwrVqygb9++xMTEVFVM1aauzsxbXr1/++035s6dS1hYGAA9evTg9ttv90CklW/RokX8+uuvNGjQgPnz55d4vba+5+XVuza/52lpaSxcuJDMzEwURWHw4MHccMMNTvvU1vfdlbq79d7r7Ya1bNky7aGHHtIee+wxbdWqVdoff/zhdpcuT7LZbNqECRO0s2fPahaLRfvnP/+pnT592mmfX375RZs5c6amqqp26NAhberUqR6KtvK4Uu99+/Zps2bN8lCEVeu3337Tjh49qj311FOlvl4b33NNK7/etfk9z8jI0I4ePappmqbl5eVpjz/+eJ34v65prtXdnfde9/2lMWPGsHjxYv7xj3+QlpbGs88+y+TJk/n222/1nsqj6urMvK7UuzZr164dgYGBZb5eG99zKL/etVlwcLDj6sHPz4+IiIgSE6XW1vfdlbq7w62GCYPBQMeOHRk/fjzz58+nXr16fPDBBxUOpjrV1Zl5Xak3wOHDh3n66ad5+eWX69R68rXxPXdVXXjPU1JSOH78eIlb7XXhfS+r7qD/vXdr8EVBQQE7duwgMTGR/fv3065dOx599FF3TuUxWiXPzHulcKVOLVu2ZNGiRfj6+vLrr78yb9483nzzzeoK0aNq43vuirrwnhcUFDB//nzuv/9+/P39nV6r7e/75eruznuv+4rj1Vdf5cEHH+SHH36ga9euLFy4kKlTp9KvXz+9p/Koyp6Z90rhSr39/f3x9fUFoEuXLthsNrKysqo1Tk+pje+5K2r7e261Wpk/fz7XXnstPXr0KPF6bX7fy6u7O++97sQRFRXFa6+9xgsvvEBcXBz169cH7KsDXkmKz8xrtVrZsmUL3bp1c9qnW7dubNy4EU3TOHz4cK2YmdeVemdmZjq+gSUlJaGqKvXq1fNEuNWuNr7nrqjN77mmaSxZsoSIiAhuvPHGUvepre+7K3V35713axxHcadOneKnn34iMTGRpUuXVuRU1a6uzsxbXr3Xrl3LunXrMBqNeHt7M3r0aNq0aePhqCvH66+/zv79+8nOzqZBgwaMHDkSq9UK1O73vLx61+b3/ODBgzz33HM0a9bMcfvp7rvvdlxh1Ob33ZW6u/Peu5U4srKy2Lx5Mxs2bODEiRPExsbyt7/9jV69erlRNSGEEFcSlxvHrVYrP//8Mz/99BN79uwhPDycPn36kJqaypNPPkmDBg2qMk4hhBA1hMuJ48EHH8RgMNC/f39Gjhzp6Bt86RaHEEKIusHlxvHmzZuTm5tLUlISR48eJScnpyrjEkIIUUPpauNITU1lw4YNbNy4kbS0NDp27MiBAwd47bXXCAkJqco4hRBC1BBu96o6ePAgGzZsYOvWrRiNRgYMGMB9991X2fEJIYSoYSrcHbeoqIgdO3awceNGnnnmmcqKSwghRA1V4cQhRF3y1FNP8cADD1T5ipcLFy5k8+bNhISEsHDhQgCef/55rr32WgYNGlRif4vFwtixY7Fardx8883cddddVRqfqNtkoXAhihk1apTjcVFRESaTybFI2UMPPcSrr75abbHoSQBeXl588MEHjiQjRFWSxCFEMcVneX700Ud5+OGH6dixowcjEqLmkcQhhA7Fk8knn3zC77//jslk4ueff6Zhw4ZMmjSJ7du389133+Hl5cW4ceO4+uqrAcjLy+O9995j165dKIrCgAEDGDlypK5ll1NTU5k+fTonT56kdevWPP7444754oSoLrJQuBAV8Msvv9CvXz+WL19Oy5YtmTlzpmNiudtuu423337bse+CBQswGo28+eabzJ07lz179vDDDz/oKi8xMZFHHnmEd999F6vVyn//+9/KrpIQ5ZLEIUQFtG3blk6dOmE0GunZsydZWVmMGDECk8nkmJInNzeXzMxMdu/ezf3334+vry8NGjRg2LBhbNmyRVd51113HU2aNMHb25tevXpx4sSJqqmYEJcht6qEqIDic7R5e3tTv359x60nb29vwL6Izvnz57HZbDz00EOO/TVNc1qN0RVBQUGOxz4+PhQUFFQgeiHcI4lDiGpgNpsxmUzEx8djNBo9HY4QFSK3qoSoBsHBwVx99dW8//775OXloaoqZ8+eZf/+/Z4OTQjd5IpDiGoyYcIEVq5cyVNPPUV+fj6NGjXi5ptv9nRYQugmI8eFqIGWLFlCYmIiQUFBvPXWW+Xub7FYePDBB7HZbAwfPpw77rijGqIUdZUkDiGEELpIG4cQQghdJHEIIYTQRRKHEEIIXSRxCCGE0EUShxBCCF0kcQghhNBFEocQQghd/h+1maZZuXSs+gAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -540,7 +322,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -597,7 +379,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaQAAAFXCAYAAADtSjqCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABi1UlEQVR4nO3deVxUZfv48c+ZGXaQZQBRUlERcYfU0sQlNR9LnzIz+1ppaos+aqZWj7bY8ktTM7MStTLNTDPL1DYtM1LDJTVFH/dQ3DdgQHaY5fz+QCYR0BkcFpnr/XrxajjbXDfH5ppzzn1ft6KqqooQQghRxTRVHYAQQggBkpCEEEJUE5KQhBBCVAuSkIQQQlQLkpCEEEJUC5KQhBBCVAuSkIQQQlQLkpCEEEJUCzpbNnr99ddtOpiLiwuvvvrqTQUkhBDCOdmUkBITE3n66advuN1nn3120wEJIYRwTjYlpKZNm9KtW7cbbhcfH3+z8QghhHBSitSyE0IIUR1IpwYhhBDVwnVv2aWnpxMXF0e9evVo2LAhq1evxs3Njfvvvx8/P79KClEIIYQzuO4V0pw5cwgICCA1NZWpU6fSqlUr2rRpw/z58ysrPiGEEE7iugnJbDbTrVs3evfujaenJx06dKBNmzYYjcbKik8IIYSTuGFCKnJ1t++rlwshhBCOcN1edpcvX6ZWrVooimJdZjKZOH78OBEREZUSoBBCCOcg3b6FEEJUCzYNjL1aTk4Oa9eu5cSJE+Tl5RVbJ2WDhBBClJfdCem9997DYrFwxx134OrqWhExCSGEcEJ2J6S///6bhQsXotPZvasQQghRJrsrNURGRnL27NmKiEUIIYQTs7tTw+XLl5k2bRrh4eElqjUMGDDAkbEJIYRwInbfd1u+fDmpqakEBQWRm5trXX5113AhhBDCXnYnpK1bt/LBBx/g7+9fEfEIIYRwUnY/Q6pduzZarbYiYhFCCOHE7H6G9P3337Njxw569+5d4hlSy5YtHRmbEEIIJ2J3Qho9enTpB1IUYmNjHRKUEEII5yOlg4QQQlQLNndq+M9//kNUVBTR0dG0bt0ad3f3ioxLCCGEk7H5CiktLY09e/awe/duDh06RFhYGNHR0dx+++3UrVu3ouMUQghRw5Xrlp3ZbObQoUPs3r2bPXv2YDKZrMmpRYsWuLi4VESsQgghajCHPEO6dOmSNTm1aNGC+++/3xGxCSGEcCI3XSH11KlTbNq0ifj4eD7++GNHxCSEEMIJlSshZWRkEB8fz6ZNmzhx4gTNmjVj6NChDg5NCCGEM7E5IZlMJnbt2sXGjRvZu3cvISEhdOrUieTkZMaPH4+vr29FximEEKKGszkhPf3002g0Grp27crAgQNp1KgRAOvXr6+w4IQQQjgPm2vZNWjQgOzsbBITEzl27BhZWVkVGZcQQggnY1cvu+TkZDZt2sTmzZtJSUmhdevWHDp0iNmzZxMQEFCRcQohhKjhyt3t+/Dhw2zatIlt27ah1Wq5++67efzxxx0dnxBCCCdx0+OQCgoK2LFjB5s3b+bll192VFxCCCGcjBRXFUIIUS3Y1Knhq6++sulgX3/99U0FI4QQwnnZ1O177dq1dO/enRtdTK1bt46BAwc6JDAhhBDOxaaElJ+fz7PPPnvD7aSoqhDVx4kTJ2jYsCF//PEHMTExZW4XFhbGU089xauvvlqJ0QlRkk0JacWKFRUdhxA1jsFgYObMmXz33XecOHECNzc3GjRoQJ8+fRg5ciT16tWr6hAB2LlzJ56entbfw8PDefzxx3njjTeqLijhlG66uKoQoqTTp08TExODTqfjjTfeoE2bNri7u3Ps2DG+++473n33XT744IMS+xUUFODq6lqpsQYFBVXq+wlRJlUI4XB9+/ZVQ0JC1MuXL5e63mKxqKqqql27dlWHDx+uvvrqq2pISIgaGBioqqqqLlu2TL3jjjvUWrVqqXq9Xr3vvvvUI0eOWPdPSkpSAXXJkiVq9+7dVXd3dzUsLExdunRpiW1WrFih9u3bV/Xw8FAbNmyoLlmypFgsDRo0UN966y1rPECxn6SkJFVVVfXvv/9W+/fvr/r6+qp+fn7qPffco+7bt89hfzMhbC4dJISwjcFgYO3atTz77LPUqlWr1G0URbG+/vrrr0lOTua3334jLi4OKHxuO3nyZHbv3s2vv/6KVqulT58+FBQUFDvOxIkTGT58OAkJCTz22GMMHjyYXbt2Fdtm0qRJDB48mH379jFw4ECGDRvG33//XWpcq1atIiwsjOeff57z589z/vx56tWrx8WLF4mJiSE4OJg//viD7du307RpU7p160ZycvLN/LmE+EdVZ0Qhapo///xTBdRVq1YVW96xY0fVy8tL9fLyUps3b66qauEVSZMmTVSz2XzdY6ampqqAGh8fr6rqP1c/r776aon3eOyxx4ptM2vWLOt6o9Goenl5qR999JF12dVXSKqqqo0bN1Zff/31Ysd9/fXX1TvvvLPYMovFojZq1EidPXv2dWMXwlZ2XyF9/vnnnDhxwsFpUYiaQy1jeMSKFStISEjgmWeeITs727q8bdu2aDTF/1dMSEjgwQcfpGHDhvj4+FC/fn0ATp48WWy7jh07Fvu9U6dOHDx4sNiyqKgo62udTkft2rW5ePGiXW3auXMnf/31F97e3tYfHx8fTpw4UebVlhD2srtTg9lsZurUqdSqVYvOnTvTuXNn9Hp9RcQmxC2pSZMmaDQaDh48yIMPPmhdXtSr7tpCxF5eXsV+z8nJoVevXsTExLBo0SJCQkIAaNGiRYlbdtcqLRle20lCURQsFovtDQIsFgs9evQgNja2xDqZC004it0Jafjw4QwdOpQ9e/bwxx9/sGrVKpo0aUKXLl248847cXd3r4g4hbhlBAQEcO+99zJnzhzGjBlj9wf2oUOHSE5OZurUqTRr1gyArVu3lppstm/fzn333Wf9fdu2bdZ9ysvV1RWz2VxsWbt27Vi8eDGhoaF4eHjc1PGFKEu5OjVoNBratm3LuHHjmDp1KhkZGcybN4+nn36ajz76CIPB4Og4hbilzJs3DxcXF6Kjo1myZAn79u3j+PHjrFu3jh9//BGtVlvmvg0aNMDNzY05c+Zw7NgxfvvtN5577rliHSGKLFy4kC+//JKjR4/y2muvsW3bNsaNG3dTsTds2JAtW7Zw6tQpUlJSsFgsjBkzBrPZTL9+/fjjjz84ceIE8fHxvPLKK2zduvWm3k+IIuVKSDk5OcTFxfHmm2/y+uuvEx4ezptvvsns2bNxd3fn7bffdnScQtxS6tevz549e3j44YeZNm0ad955Jy1atOD555+nY8eO/Pbbb2XuGxgYyNKlS/n1119p0aIFL7zwAu+++26J50wA06dP55NPPqF169YsWbKEzz//nPbt299U7G+++SaXL1+madOmBAUFcerUKWrXrs22bdsIDAykf//+NG3alMcee4yTJ09Sp06dm3o/IYrYXe171qxZ7N27l2bNmtG1a1fat29frGSQxWJh6NChLFmyxOHBCiEK2VoWSIhbid3PkJo0acKTTz6Jn59fqes1Gg0LFiy42biEEEI4mXLdsistGf3444/W125ubuUOSAghhHOyOyF9++23di0XQjheWFgYqqrK7TpRo9h8y27//v1A4TOiotdFLl68KF1BhRBC3BSbOzWMHj0agJSUFAIDA/85gKLg6+vLgw8+SLt27SomSiGEEDWe3b3sYmNjGTNmTEXFI4QQwknZlJAOHjxI8+bNAUrcrrtay5YtHRdZNXbu3Lly7RcYGEhKSoqDo7k1SNul7c7EWdsNZbe9bt26N9zXpmdICxcuZNasWQDMnz+/1G0URSm1zpUQQghhC5sSUlEyApg7d26FBSOEEMJ52T0wdv/+/QQHBxMcHEx6ejpLly5Fq9UyaNCgMgfLCiGEEDdid0JauHAhr7zyClA4NxKAVqvl448/ZuLEiY6NTgghHERVVfLy8rBYLKUWqnWkixcvkp+fX6HvUR2pqoqiKNb/2svuhGQwGAgMDMRsNrN3717mzZuHTqdjxIgRdr+5EEJUlry8PFxcXNDp7P7Ys5tOp7tuRfeazGKxkJeXV66xqXafGQ8PD9LT0zl9+jS33XYb7u7umEwmTCaT3W8uhBCVxWKxVEoycnYuLi7k5OSUa1+7z07v3r156aWXMJlMDB06FIDDhw8TGhpargCcxaVLlzh79ixpaWkAxS5nK+J1RR77Ru9Z2jb5+fkYDAaHvJet71mRr+1534KCAoxGo83b2/Kewn7yt6w85f1b252Q+vXrxx133IFGo7FOrRwQEMDIkSPLFYCz+PLLL5k5c2ZVhyFqCFuSpk6nQ6fT4eLiglartd6uunr51b9fu8zV1RU3Nzfc3d2tr0tbVrTc3d0db29vIiIiilVzEcJWdldqEOUbGJuYmMjFixfJzMwsNhW1o15frWh5Zb2PLa+9vb3JzMy86fetiDY5on3Xe+3p6Ul2drZN7+vINpnNZoxGo/W/JpPJrt8LCgrIz8+3/rfox2KxlPr3ulpYWBgPPfQQEydOLHZ1WJVycnLw9PSslPfS6XRO+xhDp9ORkZFR4m9ty8BYuxOSyWRi48aNnDhxgry8vGLrnKWkkFRqsJ+0vWa0XVVVTCZTiSRVlLjS0tI4dOgQcXFxbNmyhZCQEBYsWEB0dHRVh14tElJSUhJPPfVUsRmD8/Pz6dq1K0uWLCEiIsIh7//777/z2muvYbFYGDRoUKmfzWVtc719J0yYwIYNGwgMDCQuLq7U976ZhGT3LbvY2FhOnjxJ27Zt8fX1tXd3UYWU3FwwGlFMJlBVVJ0O1c0N3N2rOjRxi1AUBRcXF1xcXPDy8ip1my5dujBixAgSEhIYM2YMgwYN4scffyQ8PLySo61+GjRowLlz57BYLNYp6ZctW0aHDh0clozMZjOvvPIKy5cvp06dOtx333306tWr2PHL2qZx48bX3XfgwIEMGzaM5557ziGxXsvuhLR3715iY2PL/McoyqaZNg3/3btRNRrQaECrxXzbbWS+8AIA3u+/j+7ECTCbC5OGyYSpUSMyX3oJAL9x49CeOoViNILJhGIyUdCuHZenTQMg8L770J49a91XMZnIvfde0q+UdKodHY3mqttmADmPPEL6e+8BUKdxY1SNBtXbG4uPD2qtWuT270/28OFgseDz7ruYg4KwXPkxBwVhqVMHtbKnHlFVyMtDk5uLxdsbXF3RXLqE7sgRNDk5KDk5KNnZKDk55AwYgBoQgOvmzXiuWoWSl1f4tzEawWwm/f33sQQG4rFiBV5ffAEWC2i1qFot6HQYFi1CrVULj2++wX39elQvLyze3qheXqheXmT95z/g4oL25EmUnJzCv42/Pzhpl9+rRUVFsX79eu68807GjRvH999/b/0QdlYajYbQ0FBOnz5NgwYNyM3N5eOPP2blypUOe489e/YQFhZGgwYNAHjggQf45ZdfiiWksrbp2LHjdfft0KEDp0+fdlis17I7IQUGBlabe8K3GiUpCZf9+ws/9CwWMJsxXfWt0WXvXlwOHSr2gahefdlrsYBGU/ghrNOh6nSYg4OtqwvuugslMxPVxaXwA9HFBWOLFtb1mS++CCYTuLigKgqK0Yip6B+pqpL19NMoBQUoWVloMjIKj3Xlg1VJT8d7zhyUa54fZLzwAlnjx6NJTiZg2DAsfn5YfH1Ra9XC4utLXu/eGKOiICUFz6VLC2PTaAqTbkEB+TExmBs1QnvqFJ5ff12YSK78aLKzyRw/HmObNrj9/jt+L7zwT7IxmwFIWbOGgvbtcdu4Ef/x40v8zfPvugtTQADa8+dx3bKlMHm6uKDqdKDTFf49ANzcsPj6/hObyWT9ewNoMjPRHTtWGFdWVmEMRiNZV25neM+di9eyZYV/So0GS3AwpoYNSf3mm8Jzm5BQ+AUjIgK1Vi07/+XcuurXr8/kyZMZP348a9eupW/fvlUdEgCvvfYaBw8edOgxmzdvzv/7f//vhtuFh4eTmJhIgwYN+Pzzz+nVqxf16tW74X4PPvggWVlZJZZPnjyZLl26WH+/cOFCsdtjderUYc+ePcX2KWsbW/atSHYnpC5dujBz5kzuvffeEqWCnKXad3mZP/nkus8S0j777Lr7p3/44XXXZ7z66nXXZz/5ZNkrFYXMSZPKXK0GBHD+xAk0BgOa5GS0KSloLl3C2KxZ4e4FBVh8fNCkpaFLSkLJyEBz+TLm+vUxRkWhnDyJXymVPNJiY8lt1Ajt2bP4zJ6NxdMT1dsb1dMTi7d34W1GwBwURF63btYrE9XLC4uXF6bbbgMgv1s3Ur79tnA/T8/CbTw9UX18AMh95BFyH3mkzPbl9utHbr9+Zf/thg8vvFK8Wn6+NWFlDx9OfkxM4d8lORnt+fOFV2NXer35zJqF+5V77qbQUEyRkRTccYc1odVkAwYM4P3332fRokXVJiFVpSZNmnDs2DE6dOjA4sWL+eGHH0pss379enx9fbnzzjuty1avXm3T8UvrFnBtN+yytrFl34pkd0L6+eefAVi+fHmx5VLt2wlotdbbddc+rjWHhmK45t8Eqlp4lQGorVpxYdeuwiuboqs0FxcsV64WCjp04NyZM9YP8GuZWrbk8lVFfq9lCQ6m4KqrxUrh5mZ9aYqMxBQZWeaml996i+zBg3E5cgTd4cO4HD6M67ZtcCUh6fv1A52OgttvxxgdTUF0NJYrwypudRqNhscff5ypU6dy4sQJwsLCqjokm65kKkp4eDhbtmzh008/5cEHHyQoKIjVq1ezbds2vLy8mDRpEmlpaSUSga1XSHXq1CnW8er8+fPUrl272D5lbWPLvhXJ7oQk1b6FzRTln2cprq5Y6tS5/rY1mDksDHNYGPm9ev2zsOjbqKpibN0a11278P7448LbhUD2kCHW54Oa1FQsen1lh+0w9913H1OnTuXXX3/l6aefrupwqlSTJk2YO3cu8fHx1i/458+fp1mzZvTq1Qu3q77oXM3WK6SoqCiSkpI4deoUISEhfPfddyU+t8vapnHjxjfctyKVq47Gvn372LJlC5cvX2bSpEkcP36cnJwcuWUnhD2KkrCikFH0jT0vD5f9+3Hdvdv6fE979iy177gDY9Om5MfEkNezJwUdOoCraxUFbr+wsDCaNm3Khg0bnD4hNW7cmMOHDzNx4kRqXblDMGrUKA4cOMCUKVN48cUXb+r4Op2OKVOm8Oijj2KxWHjkkUdo2rQpAIMHD2bmzJmEhISUuU1Zy4vi3LZtGwaDgbZt2/LCCy8waNCgm4r3anaPQ1q3bh1r166lR48erF69ms8//5zTp0/z8ccfM2XKFIcFVp1V53FIqvrP59yxY1pcXaFevcIOAGvWeKAoKi4uoNOpaLXg7a3i72/B39+Cn58FF5eKiasmjcWx1822XZOSgueKFbjGx+O2YwdKXh4WLy8MCxdS0LmzAyN1vKvb/sorr/DNN99w6NChKik8Wh3GIZVl6dKlJCUlceHCBaZMmcL69esJCAjgnnvuqcAoK0aljkNau3YtkydPJjg4mO+++w6A0NDQcn9IO5MNGxROnnTH01PF01PFw0MtdqdKVcHFBVq1KuzFGBfnhtkM99xTWMb+gw+8OXtWS1aWQlaWhuxspcTrdu2MfPVVKgCPP66nXbsC5sxJB+D5533Jy7t+t9tBg7J5993LAHzyiRd33ZVPy5a33ohzVbU+qgJg82ZXUlK0XL6skJf3z09uroLZrKDVqjRrZmLQoMKikMuWeRIWZqJTpwIAzpzRUru2ucIS9vVYAgPJGj0aRo9Gyc3FNT4e9w0brM+sPL/8EvcffiD3oYfIu/de1Go6JOP2229n8eLFHDlyhObNm1d1ONXK448/Xuz3R67TAacmszsh5ebmlqhTZTKZpIquDWbO1LJxY8B1t2nQwMTWrZcA+OgjbwoK/klIv/zizrlzWry8VHx8LHh7q4SEWPD2NuHlpeLtrdKkyT/J4+23LxMQ8E837Q0bkjGZFAqHKSkYjZCVpZCWpiEtTYPBoCEi4srzi2yFN9/05eWXM2jZMovkZA3//a8vUVFGoqMLaNPGiK9v1VWdys5WOHdOy7lzWs6eLfyvq6vK2LGFD3379g0kMNDC558bABg3zp+LF4t/K3dxUXF3L7xStFigW7d8a0J6++1aPPBALp06FVBQAB07BqMoEBpqpn59M02bGmnTxkjr1kYaNTJV2rAj1cOD/HvuIf+qb86qVosuKQn/557D8tJL5A4cSNaTT2Ju1KhygrJR27ZtAdi9e7ckJFEqu7NIs2bNWLNmDf3797cuW7duHS2uGu8iSvf55yaSktLJzlbIySn8dn4tL69/PuTnzEnj6jy/dq19t33uvrv4BGENG5pt3tfLS+XQofNFneS4dElDYqIL69f/Mwg2PNxoTVDR0UaaNTM67LFGVpZCcrLGGvPChV5s3+7K6dNaTp/WkZ5e/EpPUVTatDFaE9Kjj+bg4fHP33LJklTc3VX8/AqvTIsSUVn+/POite0WC7z7bjonT+o4eVLLiRM6li3zZOHCwhh8fCx07JjPsGE5dOlS+ZOy5T7yCLkPP4zrrl14Ll+O55df4rJ3Lyk//ljpsVxPgwYN8PLy4siRI1Udiqim7H6GlJaWxowZM8jMzMRgMBAcHIynpycTJ050minMq/MzpIqWnq6wb58re/a4kJDgwp49riQnF36yu7qqfPllKh07FvD33zr27nXhvvvy8PRUycsL5O+/L2M0Qk6OcuVHQ2qqhkuXNCQna0lO1vDZZwZ0Ovjvf335+Wd39u27CMBzz/mxd68L9eqZue02M6GhhT916xb+hIRU7u00kwkSE3Xs2+fCrl2uxMe7MWFCJgMG5HLmjJZlyzwZOjSb2rUtlX7eNZcuoUlOxtSiBUpaGrWmTiXr2WcxXxl9X5mubXvfvn3x8vJixYoVlR5LdX6GVJNUanFVKBxUdezYMZKTk9Hr9YSHhztVSRBnTkjXUlU4d057JUG5MnJkFoGBFj75xIs33/TlwIHz+PmpzJ5dm3ffLf2SRKdTCQy0EBxs5quvUvH1VfnrLxfOndPSt2/eLdMjvKiww5o1Howd60d8/CXq1zeTkRGI2ZyKv3/l3+J0+/13/J96CsViIWv0aDJHj4ZKLPV07b/58ePHs2nTJnbv3l1pMRSRhFQ5Kj0hOTtJSDeWm6tw/nzhLTdFgeTkQP76KwudTrV26vD0LExEfn4Watr3mbQ0xZqAnnkmhN9+U+jTJ5cnnsimbdvKLb2luXCBWlOm4Ll6NaYGDbg8ZQr53btXyntf+29+/vz5TJkyhQMHDlT6HRVJSJWjwnvZ2Xp57aw9Q0RJHh4qjRr988yqWTMICsq7zh41y9VXQ2+8YUavL2DVKg++/daT9u3z+c9/srnnnrxKScSWkBDSY2PJ+b//w/fll/H6/PNKS0jXaty4MQDHjh2zdnIQoohNCSk1NdX6uqCggD///JPw8HDrt5/ExMRiNZeEEP9o3Vpl2rTLvPpqBitWePLxx14MHx5A48ZG/vOfbAYMyKmU518FMTEkb9iA5kr5Ge2pU7js20deJdaXa3Sl519SUpIkJFGCTQlp1KhR1tfvv/8+zz33HB06dLAu+/PPP9m2bZvjoxOiBvHyUhk+PJshQ7L56Sd35s3z5oUX/Jgzx5uPP06zjj+rUK6uWAIKhx54ffIJ3p99Ru6//83lt9+2Lq9I9evXR6PRkJSUVOHvJW49dt8w2LNnD3fccUexZe3bt6/UEuVC3Mp0OnjggTx+/jmFzz9PpW5dM/XqFT5vMBgUKuupbsYbb5AxcSLuP/9MUI8euG3cWOHv6erqSr169Zw2ISUlJdGjR49iy/Lz8+nQoQNHjx512Pv8/vvvdO7cmU6dOpVZ9Pp625jNZnr16sWQIUMcFpMt7E5IISEh1oKARX755RdCakhlYiEqi6JAz575rFyZip+fitkMjzwSyPjxfpUTgE5H1tixJP/0ExZ/f/SPPYbHmjUV/rYNGzZ02oR09YyxRSpqxtilS5fy+++/s2bNmhLJ7kbbfPrppzRp0sQh8djD7oGxI0eO5N133+X7778nICAAg8GAVqvl+eefL1cAKSkpzJ07l/T0dBRFoWfPntx33318/fXX/Pbbb9big4MGDeL2228HCqvexsXFodFoGDZsGFFRUQAcP36cuXPnUlBQQHR0NMOGDUNRFIxGI7GxsRw/fhwfHx/GjRtH8JWpCjZu3MiqVasA6N+/P926dStXO4RwhMcey6ZOncIPq/z8wt6Kfn4Ve8lkatGC5J9+wmfePPJ69ixcaDZX2Ky3DRs25K+//kJV1Uqda6c6qO4zxkZERHDu3Dl+++03xo4dyyeffOKwuGxhd0Jq2LAhH3zwAX///TdpaWn4+fkRERFR7tJBWq2WwYMH06hRI3Jzc5k0aRKtW7cGoE+fPtx///3Ftj9z5gxbt27lvffeIy0tjbfeeosPPvgAjUbDggULGDFiBE2aNGHatGkkJCQQHR1NXFwcXl5ezJkzhy1btrBs2TLGjx9PVlYWK1euZPr06QBMmjSJdu3a4e3tXa62CHEztFoYOjTH+vuCBd58+qkXb755mfvvr+DxWB4eZBZ9qczNJbB/f/L+9S+yn3gC1d/foW/VsGFDMjMzSUlJISgoyKHHvhVU5xljAV5//XVeffXVUt+ropUri+h0OppdmSn0Zvn7++N/5R+8h4cHoaGhGAyGMrffuXMnd911Fy4uLgQHBxMSEkJiYiJBQUHk5uZavwV06dKFnTt3Eh0dza5du3j44YeBwjnhFy1ahKqqJCQk0Lp1a2sCat26NQkJCcTExDikbULcjG7d8vjpJ3dGjQrg22/zmDbtMqGhtpd/Ki8lPx9zaCi1Zs7EZ84c8rp2Je/ee8nr1QvV1/emj9+wYUOg8HlKVSYk/YABJZbl9u1LztChKLm5BAweXGJ9zsMPk/vII2gMBvyfeabYulQbr3Kq84yxv/76K4GBgbRu3ZqtW7fa9H6OVK0qol66dImkpCTCw8M5fPgwv/zyC5s3b6ZRo0YMGTIEb29vDAZDsXubV9821F81gZler7cmNoPBYF2n1Wrx9PS0lj66ep+iYwlRHbRsaeKHH1JYtMiLd97xoVu3ICZOzGTYsOwKLeaq+vmR9umnZB48iOeXX+Kxbh0ev/xCyvLlFHTpgpKbi+rqWu5belcnpGs7SDmD6jxj7K5du1i/fj1xcXHk5+eTmZnJs88+y5w5cxzV/OuqNgkpLy+PWbNmMXToUDw9PenVqxcDrnyDWbFiBUuWLGHUqFGlZnYoPeNfb11Z965LW75hwwY2bNgAwPTp00tUO7eVTqcr9763Oml7+dv+8svw6KMmnn1Wx+uv+/Lzzz4sXmyiwmcC79IFunTBbLFg+esvakVHg06HduJEND//jOmjj1A7drzuIUpru5+fHzqdjgsXLlTqv4mLFy8We7RwuYwOHDoAH5/rrw8OLrH+2g/Tsh5jREZGMm/ePOLj49mwYQM6nY6LFy/SokULevfujZeXF1qtFq1WW+wYpV1JlaZdu3YkJSVx9uxZ6tSpw/fff8/8+fOLHausbSIjI5k8eTIAW7ZsYd68ecyfP9+m972am5tbuc6t3Qnp+++/L/FcB+DHH3+kbzkH2JlMJmbNmkXnzp2tl6hXlxXp0aMHM2bMAAqvfK4eqGswGAgICCixPDU1lYAr4yqK1un1esxmMzk5OXh7exMQEMDBgweLHau0svg9e/akZ9HDXih3+R9nKh10LWn7zbXd2xsWLYJVqzx45RVf2rXTMW3aZR58MNdBUd5Aw4aQng6Ae6tW1Pr2W3Tdu5Px8stk/+c/Ze5WVtvr16/PgQMHKvXfRH5+fqVNDHi90kFhYWEcOnSIiRMn4unpiclkYuTIkRw4cIA33niDF198EbPZjNlsLnf5oSlTpvDII49YZ30NDw/HZDKVmDG2tG2KmM1mVFW1OwadTkd+fn6Jc2tL6SC7u31/++23di2/EVVV+eijjwgNDS2W0NLS0qyvd+zYYX3o165dO7Zu3YrRaOTSpUucP3+e8PBw/P398fDw4OjRo6iqyubNm2nXrh1QOA/LxitjLLZv306LFi1QFIWoqCj27t1LVlYWWVlZ7N2719pjT4jqRlHgoYdyWb8+maZNTXzzjUeljVm6Wl7v3iRv2EBe3774TpmC9/vv232Mhg0bcvz4cccHdwtwc3Pj1KlTjB492rps6dKlrFq1Co1GY32mfjN69OhBfHw8W7du5bnnnrMu/+KLL6xDdMrapshdd93FkiVLbjoWe9h8hbR//34ALBaL9XWRixcv4lHOCsJHjhxh8+bN1K9f3zqX/KBBg9iyZQsnTpxAURSCgoJ45soDxHr16tGxY0cmTJiARqPhySeftFYaf+qpp5g3bx4FBQVERUURHR0NQPfu3YmNjeXZZ5/F29ubcePGAeDt7c1DDz3ESy+9BMCAAQOkh52o9urXN/PttylkZSkoCqSkaNBoVAICKi87qd7epM2di6rT4T1/PjmPPYbFjg4KLVq0YOPGjWRkZFiHdjgzmTG2kM3VvouyeUpKSrF7g4qi4OfnR79+/axXJDWdVPu2n7S9YtquqvDII3pSUzX88ksylT5xc14eujNnMIWHl7q6rLb/+eef9O/fn08++YQ+ffpUdJSAVPuuLBVe7Rtg7ty5AMTGxjJmzBg7QxRCVARFgRdfzCA9XVP5yQjA3b0wGakqur//xmRjtYG2bdvi6+vLypUrKy0hierP7mdIkoyEqF7atzdyzz2FU6d/9507iYmVn5m8580jqFcvtGfP2rS9Tqdj5MiRrF+/ns2bN1dwdOJWYfcEfSaTiY0bN3LixAny8orPb+MsyUpu2dlP2l7xbc/NhZiY2igKfPddSqUMoi2iPXuW4LvuIvuJJ8j4f//Puvx6bc/Ly7P2Xt24cWO5q73YSm7ZVY6buWVn9xVSbGwsP/30E+7u7tSuXbvYjxCi6nh4wJIlqWRnK/zf/+lJSam8aXjNoaHk/vvfeH77LRQU2LSPu7s7L7/8MklJSdZesMK52f2VZO/evcTGxuLl5VUR8QghbkKLFiY+/9zAoEEBDBkSwLffpuLhUTm973L798dz9Wrcf/+dvH/9y6Z9evTogYeHB7///nuxsX7COdn9FSowMBCjsRImEhNClMsddxQwf34a+/a5MHasH1fNdFCh8rt0wazX4/799zbv4+bmRseOHeU5kgDKkZC6dOnCzJkziY+PZ//+/cV+hBDVQ69e+bz2WgZr13owY4ZP5bypTkfqqlWkz5pl126dOnXi+PHjxSqtCOdk9y27osn5li9fXmy5oihlzkwohKh8Tz+dTWKijthYHxo1MvHIIxVfZqis8UjXU1Su6/Dhw3Tq1MnRIYlbiN0JqWg8khCielMUmDr1MqdO6XjtNV969crD37+CnyepKj7Tp2Nq3JjcgQNt2qVp06ZAYdWWmp6QkpKSeOqpp/jtt9+sy/Lz8+natStLlixx2Kyxv//+O6+99hoWi4VBgwaV2gN6woQJbNiwgcDAQOLi4hzyvjerXN1w9u3bx/z5860T2x0/flxu2QlRDbm4wMcfG1i5MrXikxGAouD+22942PEcKTg4GH9/fw4fPlyBgVUP1WUKc4CBAweybNkyh7yno9idkNatW8eCBQuoU6cOhw4dAsDFxYWvvvrK4cEJIW6er69Kq1aFHZHWr3fjmuGDDlcQHY3rnj3YWvlVURSaNm1a6odmTXP1FOaAdQrz54tm63WAq6cnd3V1tU5Pfq0OHToUm1WhOrA7Ia1du5bJkyfTr18/a1HT0NDQcg8WFUJUjsOHdQwbpmfRoootIGyMjkaTno7WjmreDRs25MSJExUXVDVSNIU5YPcU5vfcc0+Jn2t7KJY2PfmFCxcc24gKYvczpNzc3BITL5lMpgofZS2EuDmRkSaWLk0lJia/Qt+n4EqVfdc9e+CqKbivJywsjOTkZLKysiqt4v6AAfobbtOzZx4jR2Zbt3/44RweeSQXg0HDM88UnyZi5UrbeglWhynMqyu7s0izZs1Ys2YN/fv3ty5bt24dLVq0cGhgQgjHu/vuwmSUkqLh7Fktbdo4fkyhKSICU716aDIybN6naFrzEydO0LJlS4fHVJ1UhynMqyu7E9Lw4cOZMWMGv/32G3l5eTz33HN4enoyceLEiohPCFEBxo71Y/9+F9atSyY01MEjZ7VaLm3fDoCts6SFXZmPPSkpqdISkq1XNKVtHxBgsXv/Ik2aNGHu3LnEx8dbh9GcP3+eZs2a0atXL9zc3Erdz9YrpKioKJKSkjh16hQhISF89913t0zvaLufIfn6+jJt2jTGjx/P2LFjGT16NFOnTq12D8eEEGX7f//vMvn5CiNHBthaeq5CFSUkZ3iO1LhxYw4fPsxjjz1mnZxw1KhR3HHHHUyZMuWmZ9LV6XRMmTKFRx99lG7duvHvf//b2rV+8ODB1udJo0aN4v777+fYsWO0bdu2xNjSqmDXFZLFYmHw4MEsXryY8PBwwssxCE4IUfXCw83MmpXOiBEBvPVWLd56y/bba7Zw/+UXfN55B9XGkkBeXl7Url3bKRJS0RTmV1u6dClJSUkOncK8R48eJZZ/8cUX1tfz5s276fdxNLsSkkajoW7dumRmZhIQEFBRMQkhKkHfvnk880wWn3ziTdu2Rvr1c1wlB1VRcDl8GOPhw9C4sU37hIWFkZSU5LAYbiUyhXkhu58hxcTEMGPGDO699170en2xB281/WGkEDXNyy9nkJDgwgsv+NKsmZGmTR0zh0/RzLHKoUN2JSSZhsK52Z2Q1q9fD8A333xTbLnUshPi1uPiAvPnp9G7dxBPPRXA2rXJ+PjcfEUHc716qO7uhQmpb1+b9mnYsCErVqyo1In0RPVid0KaM2eOdUCsEOLWFxJiYf78NB55RM/zz/vx8cdp3PSwFa0WU716aO24BdekSRMADh06RNu2bW8yAHErsiuzFHVqkPmQhKhZOnYs4OWXM2jY0OSw+ZPyu3dHvdK7yxZt2rQB4K+//nJMAOKWI50ahBAA1ooEAHv2uBAaaiY4uPzZKeO113ANDISUFJu2r1OnDhEREaxfv55nnnmm3O9bltIqGIiKUd6/tXRqEEIUYzLBmDH+3HabmRUrHDBpnqpi6z3Avn37Mnv2bM6fP0+dOnVu/r2votFopMxZJTAajeV+rKOodqay0aNHl34gJ+rUUN5CsoGBgaTY+G2xppG231ptP3ZMS26uQsuWJlJSNHz1lSdDh2bj7W37x4Xrtm3on36alC++wHilvt2NnDx5kk6dOqGqKkuWLCl1LE15qapKXl4eFoulwmu7ubm5kZ9fsTUDqyNVVfH29i71b3x1wdeyyAR9QogSGjc2W1//+qs706bV4qOPvHj++UyeeCIHW74AW/z9UdLS0J46ZXNCatCgAffeey9r165lyJAhnD17trxNKEFRFDw8bC1mdHNuxS8hjqLX68vddukuJ4S4rkGDcvjxx2RatjTx6qt+DB4cwOXLN77CMNevD4DumqoEN3LtbALCedh9hbRixYoy15VndHFKSgpz584lPT0dRVHo2bMn9913H1lZWcyePZvk5GSCgoIYP368tSz96tWriYuLQ6PRMGzYMKKiooDCmWvnzp1LQUEB0dHRDBs2DEVRMBqNxMbGcvz4cXx8fBg3bhzBwcEAbNy4kVWrVgHQv39/unXrZncbhKjpoqONLF+eypIlnrz+ui8DBgTy9dcp152FVvX0RA0ORmtnQhozZgxLlizhjjvuuNmwxS3G7iuk1NTUYj/Hjh3jhx9+4OLFi+UKQKvVMnjwYGbPns3UqVP55ZdfOHPmDGvWrKFVq1Z8+OGHtGrVijVr1gBw5swZtm7dynvvvccrr7zCwoULrdMBL1iwgBEjRvDhhx9y4cIFEhISAIiLi8PLy4s5c+bQp08f67S9WVlZrFy5krfffpu3336blStXllreXQhR2C/hiSdyWLzYQGKijqeeunFhVvW229CeP2/X+4SGhjJixAjuvvvum4hW3IrsvkIaNWpUiWUJCQnEx8eXKwB/f39rMUEPDw9CQ0MxGAzs3LmTN954A4CuXbvyxhtv8Pjjj7Nz507uuusuXFxcCA4OJiQkhMTERIKCgsjNzbXOS9+lSxd27txJdHQ0u3bt4uGHHwYKp+1dtGgRqqqSkJBA69atrVderVu3JiEhgZiYmHK1RQhn0K1bPu+9l86YMf7MmuXDSy9llrmtZeBA8rOzy1xfltdee+1mQhS3KIc8Q2rdujU7d+686eNcunSJpKQkwsPDuXz5sjVR+fv7k3Flsi+DwYBe/89MjwEBARgMhhLL9Xo9BoOhxD5arRZPT08yMzPLPJYQ4voefDCXRx/NZu5cb/bvL/t7rWX8eLJHjqzEyMStzO4rpGtvzeXn5xMfH3/TDyLz8vKYNWsWQ4cOvW4dq7J6qV+v97o9U/qWtnzDhg1s2LABgOnTp5e7rTqdzmkf2Erba17bP/wQevQw07mzH1pt6dvodDoCPTzA3Z0yN6qBauo5t8XNtN3uhDR27Nhiv7u6uhIWFlbm+CRbmEwmZs2aRefOna1zyPv6+pKWloa/vz9paWnWiaz0ej2pqf8M1jMYDAQEBJRYnpqaaq0mUbROr9djNpvJycnB29ubgIAADh48WOxYzZs3LxFfz5496dmzp/X38nZpdOauoNL2mtn23r0hLa3s9cEbN+L62GNc2rQJkxPNn1aTz/mNlNX2ChmHdL1eduWhqiofffQRoaGh9L2qKnC7du3YtGkT/fr1Y9OmTbRv3966/MMPP6Rv376kpaVx/vx5wsPD0Wg0eHh4cPToUZo0acLmzZvp3bs3AG3btmXjxo1ERESwfft2WrRogaIoREVFsXz5cmtHhr179/Loo486tH1C1HTLlnkSF+fGp5+WLMqq1q4NgObcOXCihCTKx+6EtGjRIjp16mSdEhfgyJEjbNu2jaFDh9odwJEjR9i8eTP169fnxRdfBGDQoEH069eP2bNnExcXR2BgIBMmTACgXr16dOzYkQkTJqDRaHjyySetZSqeeuop5s2bR0FBAVFRUURfGYzXvXt3YmNjefbZZ/H29mbcuHEAeHt789BDD/HSSy8BMGDAAGsHByGEbYxGyM9XyM5WSlRyUENDAezuaSeck92lg5588kk+/vjjYvWgjEYj//nPf/j0008dHmB1JKWD7Cdtr7ltv16pukAfH1xr1SLjhRfIGj++cgOrQjX9nF/Pzdyys7uXnaIo1nE/RSwWi1TSFcJJFSWjs2c15ORck5nc3DAHBsoVkrCJ3QkpMjKSr776ypqULBYL33zzDZGRkQ4PTghxazhyRMedd9bmp5/cS6zLGj2afAcWSRU1l93PkIYNG8b06dMZMWKE9dLM39+fiRMnVkR8QohbQESEidq1LfzyizsPP5xbbF12BcxtJGomuxOSXq9nxowZJCYmWrtSF/VyE0I4J0WB3r3z+OorD3JzFTw8/rmFr+Tmojl3DnPjxlUYobgVlCuLaDQaIiIi6NixIxEREZKMhBD861955OVp+OMP12LLvT79lNpduqDk5FRRZOJWIZlECOEQHTrk4+FhYfNmt2LLzSEhAGguXKiKsMQtRBKSEMIhXF3hjjsK2Lq19ISklYQkbkASkhDCYe66q4AjR1xISfnno8VSlJDKOUWNcB42dWrYv3+/TQdr2bLlTQUjhLi13XVXPgBbt7py//15gNyyE7azKSHNnz//htsoikJsbOxNBySEuHW1bm3Ew8PCrl3/JCTVx4f0qVMpuFKPUoiy2JSQ5s6dW9FxCCFqAJ0OvvoqlUaNTMWW55SjzqVwPvIMSQjhUO3aGQkIKF5KTHvmDC5791ZRROJWYffAWID09HQSExPJzMwsVsOue/fuDgtMCHFrunRJw4oVnvTtm0vRPG0+M2bgumMHl/78s2qDE9Wa3Qlpx44dzJkzhzp16nD69Gnq1avH6dOniYyMlIQkhCAnR2H69FqEhpopemxkrlOnsJfd9UqDC6dXrgn6Ro0aRceOHRk2bBjvvPMOv//+O6dPn66I+IQQt5gGDcwcOHAePz8V8ALAUrs2itGIxmDAotdXbYCi2rL7GVJKSgodO3Ystqxr165s3rzZYUEJIW5disKVZPQPa9dvmYZCXIfdCalWrVqkp6cDEBQUxNGjR7l48WKJOZKEEM5r/Xo3Ro/2o+gRs1kGxwob2H3LrkePHhw+fJgOHTrQp08f3nzzTRRFoW/fvhURnxDiFnT2rJY1azw5d64ANzcwNWmCYcECjK1bV3VoohqzOyH169fP+rpr1660aNGCvLw8brvtNkfGJYS4hUVGFo5DOnBA4fbbQa1Vi7z77qviqER1Z1NCOnjwIM2bNwfKLiOUnp4upYOEEAA0bVo8IQG4/vknqkaDUSo2iDLYlJAWLlzIrFmzgLLLCEnpICFEkYAAC8HBZg4e/KeLd63XX8cSFIThiy+qMDJRndmUkIqSEUgZISGEbZo2NXHggIv1d0vt2mjPnavCiER1J6WDhBAVIiLCyOHDSrGedlLxW1yP3Qlp0aJFHDlypNiyI0eOsHjxYkfFJISoARo1MpGdrXDpUuHHjDkkBK3BAPn5VRyZqK7sTkhbtmyhcePGxZY1atSI+Ph4hwUlhLj1NWxoBuD48cInA9aJ+i5dqrKYRPVmd0JSFKXEIFiLxVKsyKoQQjRqZKJ+fZWcnMKODXk9e5L800+Yg4OrODJRXdmdkCIjI/nqq6+sSclisfDNN98QGRnp8OCEELeuevXM/P23kR49Cm/RWYKCMEZFgZtb1QYmqi27B8YOGzaM6dOnM2LECAIDA0lJScHf35+JEyeWK4B58+axe/dufH19rb35vv76a3777Tdq1aoFwKBBg7j9ymCG1atXExcXh0ajYdiwYURFRQFw/Phx5s6dS0FBAdHR0QwbNgxFUTAajcTGxnL8+HF8fHwYN24cwVe+oW3cuJFVq1YB0L9/f7p161auNgghbGA24/HNN5giIjAWDU4S4ip2JyS9Xs+MGTNITEwkNTUVvV5PeHg4Gk35Oux169aN3r17l+hO3qdPH+6///5iy86cOcPWrVt57733SEtL46233uKDDz5Ao9GwYMECRowYQZMmTZg2bRoJCQlER0cTFxeHl5cXc+bMYcuWLSxbtozx48eTlZXFypUrmT59OgCTJk2iXbt2eHt7l6sdQoiSpk/XEB8fwOLFBtBo8Hv5ZbKHDZOEJEpVriySkZFBRkYGeXl5nDlzho0bNxIXF1euAJo3b25zEti5cyd33XUXLi4uBAcHExISQmJiImlpaeTm5hIREYGiKHTp0oWdO3cCsGvXLuuVT4cOHdi/fz+qqpKQkEDr1q3x9vbG29ub1q1bk5CQUK42CCFK5+EBPj5XnjkrSmHXbymwKspQbSfo++WXX9i8eTONGjViyJAheHt7YzAYaNKkiXWbgIAADAYDWq0W/VVzrOj1egwGAwAGg8G6TqvV4unpSWZmZrHlVx+rNBs2bGDDhg0ATJ8+ncCiaTDtpNPpyr3vrU7a7pxtf/55DSaTDihsv+a223BPTa3xfw9nPuc30/ZqOUFfr169GDBggPX9lixZwqhRo8rsyXe9Hn6lrVPKmLGyrOU9e/akZ8+e1t9TUlLKfL/rKXrm5oyk7c7d9qKJYv31elz27avxfw855yXbXrdu3RvuWy0n6PPz80Oj0aDRaOjRowfHjh0DCq98UlNTrdsZDAYCAgJKLE9NTSUgIKDEPmazmZycHLy9vQkICChxLH9/f4e1QQgBKSkQHV2bJUs8Af65ZSfDREQpquUEfWlpadbXO3bsoF69egC0a9eOrVu3YjQauXTpEufPnyc8PBx/f388PDw4evQoqqqyefNm2rVrB0Dbtm3ZuHEjANu3b6dFixYoikJUVBR79+4lKyuLrKws9u7da+2xJ4RwjIAAyMhQrINjs0aP5tKWLVUclaiuqnyCvvfff5+DBw+SmZnJyJEjGThwIAcOHODEiRMoikJQUBDPPPMMAPXq1aNjx45MmDABjUbDk08+ae3d99RTTzFv3jwKCgqIiooiOjoagO7duxMbG8uzzz6Lt7c348aNA8Db25uHHnqIl156CYABAwZIDzshHEyjKazYkJR0pVqDkz5XEbZRVBtKLPz888/07t0bgAsXLhBypQQIFN7Cc7YJ+s6Vs2Kx3FeWtjubwMBA+vUz8/ffOjZtSkaTnIzn0qXk3XcfpqZNqzq8CuPs57xCnyEtX77c+vraAbCBgYFOlYyEEPYJCzNz6pQOsxmUnBxqvfsuLjLEQpTCplt2ISEhLFmyhNtuuw2TyVTmmCNHdvsWQtQMYWEmCgoULlzQEnqlSopWpqEQpbApIT333HN8//33bNmyBbPZzB9//FHqdpKQhBDXatCgcDrzpCQtoaEeWPz8JCGJUtmUkOrWrcvIkSMBeOutt5g8eXKFBiWEqDmKpqE4eVJHTEyBVGsQZbKr27fFYuHw4cMYjcaKikcIUcPUqWPG1VXlxAktcGWiPpkTSZTCrm7fGo2GunXrkpmZaR14KoQQ16PVwhNPZNOyZeEX2bRPPkH18KjiqER1ZPc4pJiYGGbMmMG9996LXq8vVm6nZcuWDg1OCFEzvPFGhvW16uVVhZGI6szuhLR+/XoAvvnmm2LLFUUhNjbWMVEJIWqc9HQFX18V13178Vy6lMxJk7BcVeBYCLsT0rXzFgkhxI188YUnkyb5kZBwgdsuXsTryy/JefRRSUiimPLNqieEEHZo376AyZMvo9OpWOrUAUArPe3ENey+QgLYt28f8fHxZGRkMGnSJI4dO0Zubq48QxJClCoy0kRkZOF4JLOxNgAaGYskrmH3FdK6detYsGABdevW5dChQwC4urry1VdfOTw4IUTNcfq0lpMntVgCA1F1OrTnz1d1SKKasTshrV27lsmTJ9OvXz9rpe3Q0NByFxwVQjiHgQP1vPOOD2g0mG+7DSU/v6pDEtWM3bfscnNzS0xPazKZ0OnKdfdPCOEkwsJMnDhR+DlxKT6+cApZIa5i9xVSs2bNWLNmTbFl69ato0WLFo6KSQhRAzVoYLYmJElGojR2J6Thw4ezY8cORo8eTV5eHs899xzbt2/niSeeqIj4hBA1RFiYifR0DWlpCh5r1uD/9NNVHZKoZuy+z/bHH38wbdo0EhMTSUlJQa/XEx4eztq1a8s9a6wQouYLC/unyGq9M2fwWLuW9OxsqdwgrOy+Qvr2229RFIUmTZrQsWNHIiIi0Gg0fPvttxURnxCihggLK+z2ffKkFvOVWael67e4ms1XSPv37wcKK34XvS5y8eJFPKRYohDiOho0KLxCSkrSYW5XmJC0Fy9ibty4KsMS1YjNCWn+/PkAFBQUWF9DYQ07Pz8/hg8f7vjohBA1hoeHSkhIYccGS98rCUmukMRVbE5IRTXsYmNjGTNmTIUFJISoucLCTNZbdqb69as6HFHN2N2pQZKREKK8nnsuE60WVG9vLm3bVtXhiGrG7oRkMpnYuHEjJ06cIC8vr9g6SVZCiOvp0qWgqkMQ1ZjdCSk2NpaTJ0/Stm1bfH19KyImIUQNlZGhsGOHK1FRRsK+mIXL//5H2qJFVR2WqCbsTkh79+4lNjYWLxk7IISw08mTOp54Qs+CBQYapafjtnkzqKpUbhBAORJSYGAgRqOxImIRQtRwTZoYWbMmmchIE+bz9dHk5qJJTcVyTX1M4ZzsTkhdunRh5syZ3Hvvvfj5+RVbV575kObNm8fu3bvx9fVl1qxZAGRlZTF79mySk5MJCgpi/PjxeHt7A7B69Wri4uLQaDQMGzaMqKgoAI4fP87cuXMpKCggOjqaYcOGoSgKRqOR2NhYjh8/jo+PD+PGjSM4OBiAjRs3smrVKgD69+9Pt27d7I5fCGE7d3do377wC62pXj0AtCdPSkISQDkqNfz888+kp6ezfPly5s+fb/356KOPyhVAt27dePnll4stW7NmDa1ateLDDz+kVatW1mKuZ86cYevWrbz33nu88sorLFy4EIvFAsCCBQsYMWIEH374IRcuXCAhIQGAuLg4vLy8mDNnDn369GHZsmVAYdJbuXIlb7/9Nm+//TYrV64kKyurXG0QQthu0yY3vvnGA3ODBgDoTp+u4ohEdWH3FVLReCRHad68OZcuXSq2bOfOnbzxxhsAdO3alTfeeIPHH3+cnTt3ctddd+Hi4kJwcDAhISEkJiYSFBREbm4uERERQOFV3M6dO4mOjmbXrl08/PDDAHTo0IFFixahqioJCQm0bt3aeuXVunVrEhISiImJcWj7hBDFrVzpwY4drgzcWJ/8O+7A4ulZ1SGJasKmhHTw4EGaN28OUKJs0NUcNYX55cuX8ff3B8Df35+MjAwADAYDTZo0sW4XEBCAwWBAq9Wi1+uty/V6PQaDwbpP0TqtVounpyeZmZnFll99LCFExQoLM7N6tZY8jQepq1dXdTiiGrEpIS1cuND6fOfqskFXUxSF2NhYx0VWClVV7Vpe1jqljB49ZS3fsGEDGzZsAGD69OklJii0lU6nK/e+tzppu7S9SKtWGlRVITMzkNDQKgqsgsk5L+dnpC0bFSUjcPwtu9L4+vqSlpaGv78/aWlp1KpVCyi88klNTbVuZzAYCAgIKLE8NTWVgICAYvvo9XrMZjM5OTl4e3sTEBDAwYMHix2r6CrwWj179qRnz57W31NSUsrVrsDAwHLve6uTtkvbi9Su7QIEsXNnFg0/eQ33uDiSr3zhqynknJdse926dW+4r92dGipDu3bt2LRpEwCbNm2iffv21uVbt27FaDRy6dIlzp8/T3h4OP7+/nh4eHD06FFUVWXz5s20a9cOgLZt27Jx40YAtm/fTosWLVAUhaioKPbu3UtWVhZZWVns3bvX2mNPCFFxwsMLp6E4elQHOh26I0dAhpIIytGpwdHef/99Dh48SGZmJiNHjmTgwIH069eP2bNnExcXR2BgIBMmTACgXr16dOzYkQkTJqDRaHjyySfRaApz6lNPPcW8efMoKCggKiqK6OhoALp3705sbCzPPvss3t7ejBs3DgBvb28eeughXnrpJQAGDBhg7eAghKg4Xl4qt91m4u+/dZg6N0CxWNCeO2ftdSecl6Je7wGMKNW5c+fKtZ9cxkvbnU1ZbR88OICLF7VsfOM7Ah9+mJTlyyno0qUKIqwYcs5r0C07IUTN1qSJiWPHdOTXCwNAl5RUtQGJakESkhCi0kVEGMnLUzhlvo2chx7CLHMjCcqRkBYtWsSRI0eKLTty5AiLFy92VExCiBru3//O4+DB8zQIs5D+4Yfk3313VYckqgG7E9KWLVto3LhxsWWNGjUiPj7eYUEJIWo2Ly8VX99/Hl8r6elVF4yoNuxOSIqiWOvHFbFYLNcdnCqEENf65BMvFi70wnvOHEJatoTc3KoOSVQxuxNSZGQkX331lTUpWSwWvvnmGyIjIx0enBCi5vrjDze2bXPFXK8eiqqiO3GiqkMSVczucUjDhg1j+vTpjBgxwtq9z9/fn4kTJ1ZEfEKIGmrJEgOKAsb94QDojh3D1KxZFUclqpLdCUmv1zNjxgwSExOtJXnCw8OtA1SFEMIWRaUjzY0aAYUJSTg3m7LI1TXf9u/fz8GDBykoKMDHx4eCggIOHjx43SrgQghxrdRUDY8+GsDaTQGY69SRhCRurWrfQoiaw9fXwp9/utG0qYmHxo7FXKdOVYckqpjd1b7nzJkjt+eEEDdNp4PISCP797uQ8/qQqg5HVAN2ZRaLxcLgwYMxSmVeIYQDtGhh5MABF9T8AnT796NcvlzVIYkqZFdC0mg01K1bl8zMzIqKRwjhRFq2NHL5soYLm08S/K9/4fbHH1UdkqhCdveyi4mJYcaMGdx7773o9fpis6w6agpzIYRzaNWq8G5LQk5TbtdocDl0iLy+fas4KlFV7E5I69evB+Cbb74ptlw6NQgh7BUZaUSrVfnfES9MjRqhO3SoqkMSVcjuhFQZU5gLIZyDh0fhVBT/+58LpmbNcNm3r6pDElXI7u5y33//fanLf/zxx5sORgjhfG6/vYDdu13Jb9oM3cmTKFlZVR2SqCJ2J6Rvv/3WruVCCHE93brl06lTPsk9+pG6fDmqq2tVhySqiM237IoqMVgslhJVGS5evIiHh4djIxNCOIU+ffLo0ycPaEA+Dao6HFGFbE5IRRUaCgoKilVrUBQFX19fhg8f7vjohBBOIztbwf/An2guXZKedk7K5oRU1JkhNjaWMWPGVFhAQgjnM2GCH3/95cK+Zotw2bNHEpKTsruX3ZgxY9i3bx9btmzh8uXLTJo0iWPHjpGbmyvjkIQQ5dKrVx7NmhnJN0Xh8cMPaFJSsAQGVnVYopLZ3anh559/ZsGCBdSpU4dDV8YMuLq68tVXXzk8OCGEc+jdO4+nn87GdHs0AC4JCVUbkKgSdiekn376icmTJ9OvXz9rkdXQ0FDOnTvn8OCEEM7j0iUNe7RtUbVaXHfvrupwRBWw+5Zdbm4ugddcSptMJnQ6uw8lhBBWo0b5k5WlsKtVK1z27KnqcEQVsPsKqVmzZqxZs6bYsnXr1tGiRQtHxSSEcEIxMfns3+/C3+9+huGLL6o6HFEF7E5Iw4cPZ8eOHYwePZq8vDyee+45tm/fzhNPPFER8QkhnETnzvmoqsIff9cvnCxJOB27z7q/vz/Tpk0jMTGRlJQU9Ho94eHhFTJp3+jRo3F3d0ej0aDVapk+fTpZWVnMnj2b5ORkgoKCGD9+PN7e3gCsXr2auLg4NBoNw4YNIyoqCoDjx48zd+5cCgoKiI6OZtiwYSiKgtFoJDY2luPHj+Pj48O4ceMIDg52eDuEEDfWpo2RWrUsxP/hxuMJL2OqX5+coUOrOixRicqVRRRFoUmTJnTs2JGIiIgKnUH29ddfZ+bMmUyfPh2ANWvW0KpVKz788ENatWplvX145swZtm7dynvvvccrr7zCwoULsVgsACxYsIARI0bw4YcfcuHCBRKu9OCJi4vDy8uLOXPm0KdPH5YtW1Zh7RBCXJ9OB3fdlc/mP9xw2bkLz5UrqzokUcnsziQ5OTmsXLmSd999lylTphT7qQw7d+6ka9euAHTt2pWdO3dal9911124uLgQHBxMSEgIiYmJpKWlkZubS0REBIqi0KVLF+s+u3btolu3bgB06NCB/fv3o6pqpbRDCFFS5875nD6t42Dr/rjs3YvGYKjqkEQlsvuW3XvvvYfFYuGOO+7AtRKKIE6dOhWAe+65h549e3L58mX8/f2BwtuHGRkZABgMBpo0aWLdLyAgAIPBgFarRa/XW5fr9XoMV/6RGwwG6zqtVounpyeZmZnUqlWrwtslhCipR498XnkFvtM9RLTlFdx+/ZXcRx6p6rBEJbE7If39998sXLiwUrp5v/XWWwQEBHD58mWmTJlC3bp1y9y2rCub613xlLbu6hlwi2zYsIENGzYAMH369BLd3m2l0+nKve+tTtoubbdFYCBERVlYv78Jr9erh+/vv+M1enQFRlgx5JyX8zPS3h0iIyM5e/YsDRpUfFXegIAAAHx9fWnfvj2JiYn4+vqSlpaGv78/aWlp1qsZvV5PamqqdV+DwUBAQECJ5ampqdbjFq3T6/WYzWZycnKsHSSu1rNnT3r27Gn9PSUlpVztCQwMLPe+tzppu7TdVj17evPhhz6cHvoo+uwzXL4F/3Zyzku2/XoXFEXsTkijRo1i2rRphIeH4+fnV2zdgAED7D1cmfLy8lBVFQ8PD/Ly8ti3bx8DBgygXbt2bNq0iX79+rFp0ybat28PQLt27fjwww/p27cvaWlpnD9/3tr7z8PDg6NHj9KkSRM2b95M7969AWjbti0bN24kIiKC7du306JFi1KvkIQQleeJJ7IZNiwbnd9YLld1MKJS2Z2Qli9fTmpqKkFBQeTm5lqXO/qD/PLly7z77rsAmM1mYmJiiIqKonHjxsyePZu4uDgCAwOZMGECAPXq1aNjx45MmDABjUbDk08+ae3999RTTzFv3jwKCgqIiooiOrqwXlb37t2JjY3l2Wefxdvbm3Hjxjm0DUII+wUEXHUrXVXRJiVhbtSo6gISlUZR7exWNmTIED744ANrxwJnVN66fXIZL213NuVt++7dLrz1Vi2Wdo0lfNZ/ufjnn1hsuOVTXcg5L98tO7u7fdeuXRutVmvvbkIIYTNvb5X0dA3HI+9BsVjw/Prrqg5JVAK7b9l17tyZd955h969e5d4hiTzIQkhHCEiwkRcXDKKEkhely54LVlC1siR4O5e1aGJCmR3Qvrll1+AwmdJV1MUhdjYWMdEJYRweooCubkKJwePp+nTD+K5YgU5UjOzRrM7IRVNZS6EEBUpPx/uvDOYf/ftycft2uH59dfkDBlSmKlEjWR3QlqxYkWZ6x6REdVCCAdxc4OuXfP5ZqUnL62eh0+YnySjGs7uTg2pqanFfo4dO8YPP/zAxYsXKyI+IYQTe+aZbLKzNSz9IwLVywtyc9Ht31/VYYkKUq6BsddKSEggPj7eIQEJIUSRVq2MdOyYz8KFXjz1VDaB//0v7r/+SuqyZRjbtrXrWJrkZHQnTqCkpaHk5aF6eWHx87P7OKLiOGTeiNatW1sraAshhCM980wW587p+P57DzJeegmLXo9+4EA8Fy8Gk6nUfZScHFz//BPPq2ae9f3vfwns1w/9sGEE/Oc/6IcMIeCZZ6zrPZcuxeObb1AuS32IqmL3FdK1t+by8/OJj4932kKCQoiK1bNnPs2aGZk1y4d/b6xLyurV+I8di98rr+AzZw6GRYswtmmD65YteH75JS4HD6JLTES5Mh9abt++qP7+ZI0dS84TT2AJCEB1c0PJzoYr2wB4fvEFrvv3o7q5kdejBzn/93/k3303VOB8b6I4uxPS2LFji/3u6upKw4YNGX0LVuQVQlR/Gg38978ZDBumZ8UKTx5/PJjU5ctx+/VXPFeswFS/PgC6v//GdedOTM2akXfvvRRER2OMjka9UlXGeKVkWFlS1q3DZe9ePFavxmPNGjzWriVrxAgyXnutwtsoCtldOkhI6aDykLZL22+GqsIDDwRy9qyW+PhLeHhU8MdWQQEea9dijIzEFBmJ7uBBPL77juzhw7HUrn3D3eWcV1LpICGEqGyKAq+8kkG9eibS0iqh67erK7n9+mGKjCz89c8/8Z43j9p33onf+PHoDh+u+BickE237Pbb2M1SSgcJISrKnXcWsHp1apUMRcoZNoz8u+/G69NP8fzqKzy//prcPn1I+/hjGRvlQDYlpPnz599wGykdJISoaIoCyckaFi/2Yty4TFxcKu+9zWFhZEyZQubzz+P1xReF9xEVBVQVz6VLyfvXv7AEB1deQDWQPEMqB3mGZD9pu7TdUX74wZ2xY/35+usU2rc3OvTY5eHyv/8R1Ls3qkZDfufO5N1zD54PPECKv79TXj3dzDOkciWk8+fPs2XLFus04Z06daJOnTr2HuaWJQnJftJ2absjnT2rITTUcuMNK4nu77/xWLUKj++/R3fiBAApX39NQadO6I4eRXfoEJbatTHXro3q64vq4oLq7Q2KgpKTg5KRgZKX989Pfj4Fd94JgMvevWhSUlC9vbF4e6N6e6P6+GAJCKjCFpetUqcw37VrF3PmzOH2228nKCiIc+fOMWnSJJ599lnatWtn7+GEEMJuRcno2289aNzYRFRU1V4pmZo0IXPiRDInTkR74gT6v/6i4PbbAfD4/nt8Zs8usc/5/ftR/f3xefddvD/+uMT6cydPgk6H5/LlhbcIr2Jxd+fCsWMA+L7yCrojR8jv3p287t0xNW16y16ZlWsK8xdffLFYB4YDBw6waNEiSUhCiEqTmwuzZvmQmamwalUqTZqUXrWhspnDwrC0awdXrhKyRo8mt29ftJcuoblwASU7G6WgANXTE4Dc++7D1LAhqocHqpsbqrs7qru7Nalkjh9PziOPoGRmosnORsnMRLmqQoUxIgLXHTuoNXUqtaZOxVynDnk9enB5xozKb/xNsjshGQwGmjVrVmxZZGQkqampDgtKCCFuxMMDli5NpX//QPr1C+SLL1K5/faqf6Z0LdXDA9OV8UylMbZrh7FdO8xmyMtTyMtTyM+H2ljQAlk+IeQ1CCEgoPSnKzlPPEHOE0+gOX8e999/x+2PP7BcGQx8q7E7IYWFhfHDDz/Qr18/67Iff/yRsLAwB4YlhBA31qiRmTVrUnj0UT0PP6zn7bcvM3BgbrW6Y2UwaDhwQEfHjgXodPD99+6sWeNBSoqW1FQN6ekacnIUCgqKB7137wUCAy3MmePN3LnenDp1HoCXX/bl++/d8fJS8fZW8fJSCQiwoNf7otdHoI96Gr3ewkNqrnWSQzc39ZaogGR3QnryySd55513WLduHXq9ntTUVNzc3Pjvf/9bEfEJIcR1hYWZ+e67FEaN8mfCBH82bnTn9dcvExJSeZ0ejEY4dkzH4cMuHDqk49gxHZMm6QgPN/HLL+688IIf27dfpF49MwaDhlOndOj1Ftq0KSAgwIKnp4q7u4q7O7i7q7i6qnh5Fcbfs2cetWubre91xx0FKApkZSnk5ChkZGg4e1bL//7nQmqqBqNRwdPTwoABuQD897++7N7typYtlwCYM8eb1FQNISFm6tQxU6eOhTp1zNSubcbVtdL+ZKUqVy87s9nM0aNHSUtLIyAggPDwcHQ6u3PbLUt62dlP2i5tr2hmM8TGevPBBz5otSpPPZXNqFFZ+Pg4dmRLZqbCjh2uHDrkwuHDhUkoMVGH0Vh4haPTqTRtqjJ1qoH27Qu4cEHDsWM6br/dWOElj1QVMjIULl/WUL9+YRL7+Wd3Ll7U8MQTOQAMHRpAfLwrubklL5kCAwuTVLt2BUyZkgHA77+7oddbaN3attuhldrte/HixcTExBAeHm7PbjWKJCT7Sdul7ZXl5EktU6fW4s8/Xdm+/SIeHrB/f+EVSZ06tl01qWrhFOru7pCerjBzZi3uvTeXmJgCdu1y4YEHggCoW9dEZKSJ5s2NREaaiIw00rixibp1q/c5L0pc589ruXBBy4ULGs6f11p/QkPNTJ9eOA1Hp07BtGlTwLx56TYdu1K7fauqysyZM3FzcyMmJoaYmBib3kgIISpDgwZmPvkkjcxMBQ+Pwg/fESMCaNLExOLFBgBeeMEXDw8VrRa0WsjOLryquHy58EP61Cktjz6aw1tvZeDhofLdd+40bWokJqaAFi2MrFqVQmSkEV/fW7OugKKAr6+Kr29hQr2eL7+svA5r5bplZ7FY2L9/P/Hx8ezcuZPg4GA6d+5M3759KyLGakeukOwnbZe2VxVVhX37XFBViIoyYjJB167BGAwazObCW31eXuqVD2gLISFm6tUz06lTPj175luPYU9HierQ7qpSqVdIABqNhtatW9O6dWsMBgPz5s3jiy++cJqEJIS4dSgKtGnzz/MPnQ7rA357jiEqXrkSUl5eHjt27GDLli0cPHiQ5s2bywR9QgghbordCem9995jz549NGrUiE6dOjF69Ghq1apVEbFVioSEBD777DMsFgs9evQoNr5KCCFE5bE7ITVq1IghQ4YQGBhYEfFUKovFwsKFC3n11VfR6/W89NJLtGvXjttuu62qQxNCCKdj99jdfv361YhkBJCYmEhISAi1a9dGp9Nx1113sXPnzqoOSwghnNItUEyi4hgMBvR6vfV3vV6PwWCowoiEEMJ5OU95hVKU1uNdKaU7zYYNG9iwYQMA06dPL/cVok6nqzFXl/aStkvbnYmzthturu1OnZCKavEVSU1Nxb+UKrk9e/akZ8+e1t/LO75AxiZI252Ns7bdWdsNNzcOyalv2TVu3Jjz589z6dIlTCYTW7dulTmdhBCiithUqWHFihU2HeyRRx656YAq2+7du/n888+xWCzcfffd9O/fv6pDEkIIp2TTFVJqaqr15/z586xZs4b9+/dz4cIF9u/fz5o1azh//nxFx1ohbr/9dj744APmzJlT4clo0qRJFXr86kza7pycte3O2m64ubbb9Axp1KhR1tfvv/8+zz33HB06dLAu+/PPP9m2bVu5gxBCCCHsfoa0Z88e7rjjjmLL2rdvz549exwWlBBCCOdjd0IKCQnh559/Lrbsl19+ISQkxGFB1VRX99RzNtJ25+SsbXfWdsPNtd3u6SeSkpJ49913MZvNBAQEYDAY0Gq1PP/88zRq1KjcgQghhHBu5ZoPyWQy8ffff5OWloafnx8RERFONYW5EEIIxytXFjl48CDx8fFkZGQwadIkjh07Rm5uLi1btnR0fLekG1UQV1WVzz77jD179uDm5saoUaNqzNXljdp+4MAB3nnnHYKDgwG48847GTBgQBVE6ljz5s1j9+7d+Pr6MmvWrBLra/I5v1Hba+o5T0lJYe7cuaSnp6MoCj179uS+++4rtk1NPe+2tL1c512109q1a9UxY8aoq1evVocMGaKqqqqeOnVKfeWVV+w9VI1kNpvVMWPGqBcuXFCNRqP6wgsvqKdPny62zV9//aVOnTpVtVgs6pEjR9SXXnqpiqJ1LFvavn//fnXatGlVFGHFOXDggHrs2DF1woQJpa6vqedcVW/c9pp6zg0Gg3rs2DFVVVU1JydHHTt2rNP8v25L28tz3u3u1LB27VomT55Mv3790GgKdw8NDS33tN41jS0VxHft2kWXLl1QFIWIiAiys7NJS0uroogdx5mrpzdv3hxvb+8y19fUcw43bntN5e/vb73a8fDwIDQ0tERx5pp63m1pe3nYnZByc3NLFM4zmUzyDOkKWyqIGwyGYn/DmlJl3Nbq6UePHuXFF1/k7bff5vTp05UZYpWpqefcVjX9nF+6dImkpCTCw8OLLXeG815W28H+8253QmrWrBlr1qwptmzdunW0aNHC3kPVSKoNFcRt2eZWZEu7GjZsyLx585g5cya9e/dm5syZlRVelaqp59wWNf2c5+XlMWvWLIYOHYqnp2exdTX9vF+v7eU573YnpOHDh7Njxw5Gjx5NXl4ezz33HNu3b+eJJ56w91A1ki0VxPV6fbFquGVVGb/V2NJ2T09P3N3dgcKyTWazmYyMjEqNsyrU1HNui5p8zk0mE7NmzaJz587ceeedJdbX5PN+o7aX57zbnZD8/f2ZNm0a48ePZ+zYsYwePZqpU6fi5+dn76FqJFsqiLdr147NmzejqipHjx7F09OzRvwjtaXt6enp1m+NiYmJWCwWfHx8qiLcSlVTz7ktauo5V1WVjz76iNDQUPr27VvqNjX1vNvS9vKc93KNQxLXV1oF8fXr1wPQq1cvVFVl4cKF7N27F1dXV0aNGkXjxo2rOGrHuFHbf/75Z9avX49Wq8XV1ZUhQ4bQtGnTKo765r3//vscPHiQzMxMfH19GThwICaTCaj55/xGba+p5/zw4cO89tpr1K9f33obbtCgQdYropp83m1pe3nOu90JqaypKFxcXAgICCAqKkquloQQQtjN7oT0/vvvs2PHDsLDw63PDBITE2nbti0Gg4FTp07x/PPPExUVVUEhCyGEqIns7qttsVgYN25csYrfO3fuJD4+nqlTp7Jx40aWLVsmCUkIIYRd7O7UsHfv3hIPqtu2bUtCQgIAXbp04eLFiw4JTgghhPMo1/QTRQ+pi6xfv57atWsDkJGRgZubm2OiE0II4TTsfoZ0/PhxZs2ahcViISAggNTU1GLTTxw8eJBz58459XwgQggh7CfTTwghhKgW7L5lB5CVlUV2djb5+flcuHCBzZs3ExcX5+jYhHAaEyZM4MCBAxX+PnPnzmXQoEGMHj3auuyNN97gt99+K3V7o9HI4MGDGTRoEF999VWFxyecm92XNTt27GDOnDnUqVOH06dPU69ePU6fPk1kZCTdu3eviBiFuOUNHjzY+rqgoACdTmetlv/MM8/w3nvvVVosDzzwAP/3f/9n07YuLi588cUXzJ07t4KjEqIcCWnFihWMGjWKjh07MmzYMN555x1+//33GlnBVwhH+eKLL6yvR48ezYgRI2jdunUVRiRE9WN3QkpJSaFjx47FlnXt2pVnnnmGIUOGOCwwIZzJ1Unq66+/5syZM+h0Onbt2kVQUBDPP/88f/75Jz/99BMuLi6MHDmSNm3aAJCTk8Pnn3/Onj17UBSFu+++m4EDB1qvwGyRnJzM5MmTOXnyJBEREYwdO5ZatWpVVHOFKJXdz5Bq1apFeno6AEFBQRw9epSLFy9isVgcHZsQTuuvv/6iS5cufPbZZzRs2JCpU6daC1o+9NBDfPLJJ9ZtY2Nj0Wq1fPjhh7zzzjvs3bu3zGdCZdmyZQv/+c9/+PTTTzGZTPzwww+ObpIQN2R3QurRoweHDx8GoE+fPrz55pu8+OKL9OrVy+HBCeGsIiMjiYqKQqvV0qFDBzIyMujXrx86nY5OnTqRnJxMdnY26enpJCQkMHToUNzd3fH19aVPnz5s3brVrvfr1q0bdevWxdXVlY4dO3LixImKaZgQ12H3Lbv777/feiuga9eutGjRgry8PG677TaHByeEs/L19bW+dnV1pVatWtb/71xdXYHCydHS0tIwm80888wz1u1VVS02c68tri6I7ObmRl5e3k1EL0T52JWQLBYLgwcPZvHixbi4uACUmM5cCFF59Ho9Op2OhQsXotVqqzocIW6KXbfsNBoNdevWJTMzs6LiEULYwd/fnzZt2rBkyRJycnKwWCxcuHCBgwcPVnVoQtjN7lt2MTExzJgxg3vvvRe9Xl9sfviWLVs6NDghxI2NGTOGZcuWMWHCBHJzc6lduzYPPPBAVYclhN3sLh109QjvYgdSFGJjYx0SlBCiYnz00Uds2bIFPz8/5syZc8PtjUYjTz/9NGazmfvvv5+HH364EqIUzkqmMBdCCFEtlKsi6r59+9iyZQuXL19m0qRJHD9+nJycHLllJ4QQotzsHoe0bt06FixYQJ06dTh06BBQWO9KCi8KIYS4GXYnpLVr1zJ58mT69etnHRcRGhrKuXPnHB6cEEII52F3QsrNzS0x9shkMsl8SEIIIW6K3QmpWbNmrFmzptiydevW0aJFC0fFJIQQwgnZ3csuLS2NGTNmkJmZicFgIDg4GE9PTyZOnFis/IgQQghhj3J1+1ZVlcTERFJSUtDr9YSHh9tV6l4IIYS4lt0JafHixcTExBAeHl5RMQkhhHBCdvdEUFWVmTNn4ubmRkxMDDExMdStW7ciYhNCCOFEynXLzmKxsH//fuLj49m5cyfBwcF07tyZvn37VkSMQgghnMBNlw4yGAzMmzeP//3vf6xYscJRcQkhhHAy5Ro8lJeXx44dO9iyZQsHDx6kefPmZRZdFUIIIWxh9xXSe++9x549e2jUqBGdOnWiQ4cO1KpVq6LiE0II4STsvkJq1KgRQ4YMKVGtwWKxSNdvIYQQ5XbTz5BOnTrFxo0b2bJlCx9//LGj4hJCCOFkyvUMKSMjg/j4eDZt2sSJEydo1qwZQ4cOdXBoQgghnInNCclkMrFr1y42btzI3r17CQkJoVOnTiQnJzN+/Hh8fX0rMk4hhBA1nM0J6emnn0aj0dC1a1cGDhxIo0aNAFi/fn2FBSeEEMJ52NwLoUGDBmRnZ5OYmMixY8fIysqqyLiEEEI4Gbs6NSQnJ7Np0yY2b95MSkoKrVu35tChQ8yePZuAgICKjFMIIUQNV+5edocPH2bTpk1s27YNrVbL3XffzeOPP+7o+IQQQjiJm+72XVBQwI4dO9i8eTMvv/yyo+ISQgjhZG46IQkhhBCOIKUVhBBCVAuSkIQQQlQLkpCEEEJUC5KQhBBCVAuSkIQQQlQLkpCEEEJUC/8feKOV2jNNh6EAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -607,7 +389,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -664,7 +446,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -674,7 +456,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -731,7 +513,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -741,7 +523,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYcAAAEaCAYAAAD65pvjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABEyElEQVR4nO3deVxVdfrA8c9d2BGQi4oKqCnuW8io4a4MU1qKqZmVjTkt5lZZTpJrk5bmWGPmUsmolc20zJS2GUOWmmhiainkgqmlgCCIyHbhLr8/jPsT2Y5wF7j3eb9evl7cc7/nnOd7D/Lc71m+j8psNpsRQgghrqN2dABCCCEaHkkOQgghKpHkIIQQohJJDkIIISqR5CCEEKISSQ5CCCEqkeQgRC2WLFlChw4dLK83b96MVqu1vP72229RqVScP3/eEeEJYROSHIRLKy4uZuHChYSHh+Pl5YVOp+MPf/gDr732mqXNM888w/79+6vdRlRUFBkZGbRq1coeIQthF9ramwjhvB5//HG++eYbVq9eTa9evcjPz+fw4cP8+uuvlja+vr74+vpWuw13d3eCg4PtEa4QdiMjB+HSPvnkE+bOnUtsbCzt2rWjV69eTJkyhUWLFlna3Hha6UZVnVY6ffo0EyZMIDAwEG9vb3r27Mlnn31mef+LL76gT58+eHh40Lx5c6ZPn05hYaHl/SlTphAdHc2bb75JmzZt8PPzY8yYMWRnZ1v5ExCiapIchEtr2bIlO3bsIDc312rbzMzMJCoqisuXL7N9+3aOHj3KCy+8gFp97b/bTz/9xOjRoxk8eDBHjhxhy5YtfPbZZ0ybNq3CdpKTk/nmm2/4/PPP2bFjB0eOHOGZZ56xWpxC1EROKwmXtnHjRu677z6aNWtGt27d6N+/P6NGjWL06NGoVKo6bXPt2rWoVCq2bduGj48PAO3bt7e8v3LlSiIiInj11VcB6NKlC2vWrGHs2LEsXbqUNm3aANdOV23evBkPDw/g2imw1atX16e7QigmIwfh0gYMGMDp06fZs2cPf/7zn7l48SLjxo1j9OjR1HVOyh9++IGoqChLYrhRSkoKgwcPrrBsyJAhmM1mUlNTLcu6dOliSQwArVu35uLFi3WKSYibJclBuDytVktUVBRPP/0027ZtY/PmzXz22Wfs3r27ztusbdRR3fvXL3d3d6/0nkyiLOxFkoMQN+jSpQsAWVlZdVq/T58+7N27t8IF5ut169aNXbt2VVi2a9cuVCoVXbt2rdM+hbA2SQ7CpQ0ZMoQNGzZw8OBBzp07x9dff8306dMJCAhg2LBhddrm9OnTMZlMjBkzhr1793LmzBk+++wzvvzySwDmzp3LoUOHmDNnDsePH2fHjh3MmjWL+++/n7CwMGt2T4g6k+QgXNodd9zB1q1bGTlyJJ06deKhhx4iPDycvXv3EhQUVKdttmzZku+++44mTZowcuRIunXrxvz58y2nhHr27Mn27dvZtWsXvXr1YvLkyYwaNYoNGzZYs2tC1ItKKsEJIYS4kYwchBBCVCLJQQghRCWSHIQQQlQiyUEIIUQlkhyEEEJU0ujnVkpPT6/TekFBQVy6dMnK0TQO0nfpu6tx1b5X128ltUdk5CCEEKISSQ5CCCEqkeQghBCikkZ/zeFGZrOZkpISTCZTjTNjXrx4Eb1eb8fIGo769t1sNqNWq/H09KxzzQMhRMPmdMmhpKQENzc3tNqau6bVatFoNHaKqmGxRt8NBgMlJSV4eXlZKSohREPidKeVTCZTrYlB1J9Wq8VkMjk6DCGEjThdcpDTHPYjn7UQzsvpkoMQwro+/fRT4uPjHR2GsDNJDkKIGn3xxRds2bLF0WEIO5PkIISokcFgkOt4LkiSgw2cOXOGESNGVFim1+vp378/J0+etNp+vvnmGwYNGsSAAQN4/fXXb6pNTevOmTOHnj17Mnz4cKvFKhovo9GIWi1/KlyNHHEbaNOmDenp6RXu5tm6dSv9+/enY8eOVtmH0Whk/vz5vPvuu3zzzTd88sknlRJPdW1qW/eee+5h69atVolTNH5Go1FGDi5IkoMNqNVqWrduzW+//QZAcXExb7zxBk8//bTV9nH48GHatm1LmzZtcHd3Z8yYMXz11VeK2hw6dKjGdfv3709AQIDVYhWNmyQH12S3I37kyBE2bdqEyWRixIgRxMbGVni/qKiI1157jZycHIxGI3fddRfDhg2r1z4XLVpEampqle+pVCrqUj67a9eu/O1vf6u1XYcOHUhLS6NNmzZs2bKFmJgYQkNDa11v7NixFBQUVFq+cOFCBg8ebHmdmZlZYWbFli1bcvjw4QrrVNdGybpClDMYDHJayQXZJTmYTCbi4+NZsGABOp2OuLg4IiMjCQkJsbTZsWMHISEhzJs3j/z8fJ544gkGDRrUaL+xhIeHc/r0afr378/mzZv59NNPK7VJSEjA39+ffv36WZZ9/PHHirZfVWK78bmD6tooWVeIcjJycE12OeJpaWkEBwfTokULAKKiokhOTq6QHFQqFSUlJZa5kXx9fev9baWmb/harRaDwVCv7dekQ4cO7N27l40bNzJ27FiaNWvGxx9/zL59+/Dx8WHevHlcvny50h9lpSOHli1bVqhlkZGRYfl8a2ujZF0hyskFaetw//57yjp1wtxITtnaJTnk5uai0+ksr3U6HadOnarQ5vbbb+fll1/mscceo7i4mKeeeqrKX8jExEQSExMBWL58OUFBQRXev3jxouJvObb8NtS5c2fWrVvHd999R2JiIlqtlosXL9KtWzduv/12fHx80Gg0aDSaCnFUNcKoSmRkJGfOnOHChQu0bNmS7du3s379+grbqq5Nhw4dal23fO6lmj4jDw+PSp9/Q6fVahtdzNZS176rVCq8vLwa9efm8OOem4v73XdjWLYM0zPP2G239em3XZKDktMYP/74I23atGHRokVcvHiRF154gc6dO+Pt7V2hXXR0NNHR0ZbXN1Y50uv1iiaVs/XIoW3btvz88888++yzeHt7YzAYmDZtGikpKSxZsoS5c+diNBoxGo11jmPp0qVMnDgRk8nExIkT6dChAwaDgcmTJ7Ny5UqCg4OrbKPVaqtdF2D69Ons27eP3NxcevXqxTPPPMOkSZMq7V+v1ze66lquWhEM6t738gkWG/Pn5ujj7r5vH0HAlTZt0NsxjvpUgrNLctDpdOTk5Fhe5+Tk0LRp0wptvvnmG2JjY1GpVAQHB9O8eXPS09Pp0KGDPUK0Og8PD3799dcKy959913OnDmDWq2u1P+6GDFiRKXnKQDeeeedWttUtxxg3bp19Y5NOI+ysjK55lBPbr/fGFPWtauDI1HOLke8ffv2ZGRkkJWVRWBgIElJScyePbtCm6CgII4ePUqXLl3Iy8sjPT2d5s2b2yM8u3nggQcqvJ44caKDIhFCOYPBgJubm6PDaNS0qakYdTpMjehvml2Sg0ajYerUqSxbtgyTycSwYcMIDQ0lISEBgJiYGMaNG8e6desszwLcf//9+Pn52SM8IUQNZORQf26pqRi6dIFGdFeg3Y54REQEERERFZbFxMRYfg4MDGTBggX2CkcIoZDMrVR/eStXoior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QQghRCUqc1UPIQghhHBpLjtymDdvnqNDcBjpu2uSvrue+vTbZZODEEKI6klyEEIIUYnLJofr52dyNdJ31yR9dz316bdckBZCCFGJy44chBBCVE+SgxBCiErsNreSo9RWu9psNrNp0yYOHz6Mh4cH06dP55ZbbnFMsFZWW99TUlJ4+eWXad68OQD9+vVj/PjxDojUutatW8ehQ4fw9/dn1apVld535mNeW9+d9ZhfunSJtWvXkpeXh0qlIjo6mpEjR1Zo46zHXUnf63TczU7MaDSaZ86cac7MzDSXlZWZn3nmGfNvv/1Woc0PP/xgXrZsmdlkMplPnDhhjouLc1C01qWk78eOHTO/9NJLDorQdlJSUsynT582z5kzp8r3nfWYm821991Zj3lubq759OnTZrPZbC4qKjLPnj3bZf6vK+l7XY67U59Wur52tVartdSuvt7BgwcZPHgwKpWKjh07UlhYyOXLlx0UsfUo6buz6tq1K76+vtW+76zHHGrvu7Nq2rSpZRTg5eVF69atyc3NrdDGWY+7kr7XhVMnh6pqV9/4oeXm5laosVpVm8ZISd8BTp48ydy5c3nxxRf57bff7BmiwzjrMVfK2Y95VlYWZ86coUOHDhWWu8Jxr67vcPPH3amvOZgV1K5W0qYxUtKvdu3asW7dOjw9PTl06BArV67ktddes1eIDuOsx1wJZz/mJSUlrFq1iilTplQqFObsx72mvtfluDv1yEFJ7WqdTlehALez1LdW0ndvb288PT2Ba8WYjEYj+fn5do3TEZz1mCvhzMfcYDCwatUqBg0aRL9+/Sq978zHvba+1+W4O3VyUFK7OjIykt27d2M2mzl58iTe3t5O8QujpO95eXmWb1NpaWmYTCaaNGniiHDtylmPuRLOeszNZjMbNmygdevW3HnnnVW2cdbjrqTvdTnuTv+E9KFDh9iyZYuldvXdd99doXa12WwmPj6eH3/8EXd3d6ZPn0779u0dHLV11Nb3HTt2kJCQgEajwd3dnQcffJBOnTo5OOr6+8c//kFqaipXr17F39+fe+65B4PBADj/Ma+t7856zI8fP86iRYsICwuznCqaNGmSZaTgzMddSd/rctydPjkIIYS4eU59WkkIIUTdSHIQQghRiSQHIYQQlUhyEEIIUYkkByGEEJVIchBCCFGJJAchbjBnzhxSUlJsvp+1a9cyadIkZsyYYVm2ZMkSvv766yrbl5WVMXnyZCZNmsS///1vm8cnXJtTz60kRFUmT55s+bm0tBStVotafe170qOPPsorr7xit1jGjBnDvffeq6itm5sb77zzDmvXrrVxVEJIchAu6J133rH8PGPGDB577DF69uzpwIiEaHgkOQhxg+sTxgcffMD58+fRarUcPHiQZs2a8fTTT/P999/z+eef4+bmxrRp0+jVqxcARUVFbNmyhcOHD6NSqRg2bBj33HOPZWSiRHZ2NgsXLuTcuXN07NiR2bNn4+fnZ6vuClElueYgRC1++OEHBg8ezKZNm2jXrh3Lli2zTHY2btw43nzzTUvb119/HY1Gw2uvvcbLL7/Mjz/+WO01hOrs3buXxx9/nI0bN2IwGPj000+t3SUhaiXJQYhadO7cmd69e6PRaOjfvz/5+fnExsai1WoZMGAA2dnZFBYWkpeXx5EjR5gyZQqenp74+/szatQokpKSbmp/Q4cOpVWrVri7u3Pbbbdx9uxZ23RMiBrIaSUhauHv72/52d3dHT8/P8tpInd3d+BaoZXLly9jNBp59NFHLe3NZnOFinxKBAQEWH728PCgpKSkHtELUTeSHISwEp1Oh1arJT4+Ho1G4+hwhKgXOa0khJU0bdqUXr168fbbb1NUVITJZCIzM5PU1FRHhybETZORgxBWNHPmTLZu3cqcOXMoLi6mRYsWjBkzxtFhCXHTpNiPEA6yYcMG9u7dS0BAAGvWrKm1fVlZGY888ghGo5HRo0czYcIEO0QpXJUkByGEEJXINQchhBCVSHIQQghRiSQHIYQQlUhyEEIIUYkkByGEEJVIchBCCFHJ/wHuMWyP2704BQAAAABJRU5ErkJggg==\n", + "image/png": "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fJ544gkGDRrUaL+xhIeHc/r0afr378/mzZv59NNPK7VJSEjA39+ffv36WZZ9/PHHirZfVWK78bmD6tooWVeIcjJycE12OeJpaWkEBwfTokULAKKiokhOTq6QHFQqFSUlJZa5kXx9fev9baWmb/harRaDwVCv7dekQ4cO7N27l40bNzJ27FiaNWvGxx9/zL59+/Dx8WHevHlcvny50h9lpSOHli1bVqhlkZGRYfl8a2ujZF0hyskFaetw//57yjp1wtxITtnaJTnk5uai0+ksr3U6HadOnarQ5vbbb+fll1/mscceo7i4mKeeeqrKX8jExEQSExMBWL58OUFBQRXev3jxouJvObb8NtS5c2fWrVvHd999R2JiIlqtlosXL9KtWzduv/12fHx80Gg0aDSaCnFUNcKoSmRkJGfOnOHChQu0bNmS7du3s379+grbqq5Nhw4dal23fO6lmj4jDw+PSp9/Q6fVahtdzNZS176rVCq8vLwa9efm8OOem4v73XdjWLYM0zPP2G239em3XZKDktMYP/74I23atGHRokVcvHiRF154gc6dO+Pt7V2hXXR0NNHR0ZbXN1Y50uv1iiaVs/XIoW3btvz88888++yzeHt7YzAYmDZtGikpKSxZsoS5c+diNBoxGo11jmPp0qVMnDgRk8nExIkT6dChAwaDgcmTJ7Ny5UqCg4OrbKPVaqtdF2D69Ons27eP3NxcevXqxTPPPMOkSZMq7V+v1ze66lquWhEM6t738gkWG/Pn5ujj7r5vH0HAlTZt0NsxjvpUgrNLctDpdOTk5Fhe5+Tk0LRp0wptvvnmG2JjY1GpVAQHB9O8eXPS09Pp0KGDPUK0Og8PD3799dcKy959913OnDmDWq2u1P+6GDFiRKXnKQDeeeedWttUtxxg3bp19Y5NOI+ysjK55lBPbr/fGFPWtauDI1HOLke8ffv2ZGRkkJWVRWBgIElJScyePbtCm6CgII4ePUqXLl3Iy8sjPT2d5s2b2yM8u3nggQcqvJ44caKDIhFCOYPBgJubm6PDaNS0qakYdTpMjehvml2Sg0ajYerUqSxbtgyTycSwYcMIDQ0lISEBgJiYGMaNG8e6desszwLcf//9+Pn52SM8IUQNZORQf26pqRi6dIFGdFeg3Y54REQEERERFZbFxMRYfg4MDGTBggX2CkcIoZDMrVR/eStXoior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QQghRCUqc1UPIQghhHBpLjtymDdvnqNDcBjpu2uSvrue+vTbZZODEEKI6klyEEIIUYnLJofr52dyNdJ31yR9dz316bdckBZCCFGJy44chBBCVE+SgxBCiErsNreSo9RWu9psNrNp0yYOHz6Mh4cH06dP55ZbbnFMsFZWW99TUlJ4+eWXad68OQD9+vVj/PjxDojUutatW8ehQ4fw9/dn1apVld535mNeW9+d9ZhfunSJtWvXkpeXh0qlIjo6mpEjR1Zo46zHXUnf63TczU7MaDSaZ86cac7MzDSXlZWZn3nmGfNvv/1Woc0PP/xgXrZsmdlkMplPnDhhjouLc1C01qWk78eOHTO/9NJLDorQdlJSUsynT582z5kzp8r3nfWYm821991Zj3lubq759OnTZrPZbC4qKjLPnj3bZf6vK+l7XY67U59Wur52tVartdSuvt7BgwcZPHgwKpWKjh07UlhYyOXLlx0UsfUo6buz6tq1K76+vtW+76zHHGrvu7Nq2rSpZRTg5eVF69atyc3NrdDGWY+7kr7XhVMnh6pqV9/4oeXm5laosVpVm8ZISd8BTp48ydy5c3nxxRf57bff7BmiwzjrMVfK2Y95VlYWZ86coUOHDhWWu8Jxr67vcPPH3amvOZgV1K5W0qYxUtKvdu3asW7dOjw9PTl06BArV67ktddes1eIDuOsx1wJZz/mJSUlrFq1iilTplQqFObsx72mvtfluDv1yEFJ7WqdTlehALez1LdW0ndvb288PT2Ba8WYjEYj+fn5do3TEZz1mCvhzMfcYDCwatUqBg0aRL9+/Sq978zHvba+1+W4O3VyUFK7OjIykt27d2M2mzl58iTe3t5O8QujpO95eXmWb1NpaWmYTCaaNGniiHDtylmPuRLOeszNZjMbNmygdevW3HnnnVW2cdbjrqTvdTnuTv+E9KFDh9iyZYuldvXdd99doXa12WwmPj6eH3/8EXd3d6ZPn0779u0dHLV11Nb3HTt2kJCQgEajwd3dnQcffJBOnTo5OOr6+8c//kFqaipXr17F39+fe+65B4PBADj/Ma+t7856zI8fP86iRYsICwuznCqaNGmSZaTgzMddSd/rctydPjkIIYS4eU59WkkIIUTdSHIQQghRiSQHIYQQlUhyEEIIUYkkByGEEJVIchBCCFGJJAchbjBnzhxSUlJsvp+1a9cyadIkZsyYYVm2ZMkSvv766yrbl5WVMXnyZCZNmsS///1vm8cnXJtTz60kRFUmT55s+bm0tBStVotafe170qOPPsorr7xit1jGjBnDvffeq6itm5sb77zzDmvXrrVxVEJIchAu6J133rH8PGPGDB577DF69uzpwIiEaHgkOQhxg+sTxgcffMD58+fRarUcPHiQZs2a8fTTT/P999/z+eef4+bmxrRp0+jVqxcARUVFbNmyhcOHD6NSqRg2bBj33HOPZWSiRHZ2NgsXLuTcuXN07NiR2bNn4+fnZ6vuClElueYgRC1++OEHBg8ezKZNm2jXrh3Lli2zTHY2btw43nzzTUvb119/HY1Gw2uvvcbLL7/Mjz/+WO01hOrs3buXxx9/nI0bN2IwGPj000+t3SUhaiXJQYhadO7cmd69e6PRaOjfvz/5+fnExsai1WoZMGAA2dnZFBYWkpeXx5EjR5gyZQqenp74+/szatQokpKSbmp/Q4cOpVWrVri7u3Pbbbdx9uxZ23RMiBrIaSUhauHv72/52d3dHT8/P8tpInd3d+BaoZXLly9jNBp59NFHLe3NZnOFinxKBAQEWH728PCgpKSkHtELUTeSHISwEp1Oh1arJT4+Ho1G4+hwhKgXOa0khJU0bdqUXr168fbbb1NUVITJZCIzM5PU1FRHhybETZORgxBWNHPmTLZu3cqcOXMoLi6mRYsWjBkzxtFhCXHTpNiPEA6yYcMG9u7dS0BAAGvWrKm1fVlZGY888ghGo5HRo0czYcIEO0QpXJUkByGEEJXINQchhBCVSHIQQghRiSQHIYQQlUhyEEIIUYkkByGEEJVIchBCCFHJ/wHuMWyP2704BQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -751,7 +533,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -839,7 +621,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3.9.13 ('conda_jl')", "language": "python", "name": "python3" }, @@ -853,7 +635,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.12" + "version": "3.9.13" }, "toc": { "base_numbering": 1, @@ -867,6 +649,11 @@ "toc_position": {}, "toc_section_display": true, "toc_window_display": true + }, + "vscode": { + "interpreter": { + "hash": "612adcc456652826e82b485a1edaef831aa6d5abc680d008e93d513dd8724f14" + } } }, "nbformat": 4, diff --git a/examples/notebooks/parameterization/parameter-values.ipynb b/examples/notebooks/parameterization/parameter-values.ipynb index e7cf9421fb..ff96cee537 100644 --- a/examples/notebooks/parameterization/parameter-values.ipynb +++ b/examples/notebooks/parameterization/parameter-values.ipynb @@ -128,7 +128,6 @@ } ], "source": [ - "print(\"Marquis2019 chemistry set is {}\".format(pybamm.parameter_sets.Marquis2019))\n", "chem_parameter_values = pybamm.ParameterValues(\"Marquis2019\")\n", "print(\"Negative current collector thickness is {} m\".format(\n", " chem_parameter_values[\"Negative current collector thickness [m]\"])\n", @@ -201,7 +200,7 @@ "a = pybamm.Parameter(\"a\")\n", "b = pybamm.Parameter(\"b\")\n", "c = pybamm.Parameter(\"c\")\n", - "func = pybamm.FunctionParameter(\"square function\", {\"a\": a})\n", + "func = pybamm.FunctionParameter(\"cube function\", {\"a\": a})\n", "\n", "expr = a + b * c\n", "try:\n", diff --git a/examples/scripts/print_model_parameter_combinations.py b/examples/scripts/print_model_parameter_combinations.py index 98ba7e6429..e5314e0c1a 100644 --- a/examples/scripts/print_model_parameter_combinations.py +++ b/examples/scripts/print_model_parameter_combinations.py @@ -5,11 +5,7 @@ import pybamm all_options = pybamm.BatteryModelOptions({}).possible_options -all_parameter_sets = [ - x - for x in dir(pybamm.parameter_sets) - if not x.startswith("__") and x not in ["Sulzer2019"] -] +all_parameter_sets = pybamm.parameter_sets.all_parameter_sets["lithium_ion"] for option_name, option_list in all_options.items(): for parameter_set in all_parameter_sets: diff --git a/pybamm/parameters/parameter_sets.py b/pybamm/parameters/parameter_sets.py index b77db5e0bc..7af7eda31c 100644 --- a/pybamm/parameters/parameter_sets.py +++ b/pybamm/parameters/parameter_sets.py @@ -1,53 +1,183 @@ -# -# Parameter sets from papers -# This file is being deprecated and replaced with defined parameter sets directly -# in python files in the input/parameters folder. The Ai2020 parameter set is -# kept here for now as it is used in the tests, but will be removed in the future. -# +""" +Parameter sets from papers. To see which parameter sets have been used in +your simulation, add the line "pybamm.print_citations()" to your script. + +Lead-acid parameter sets +------------------------ + * Sulzer2019 : + - Valentin Sulzer, S. Jon Chapman, Colin P. Please, David A. Howey, and Charles + W. Monroe. Faster Lead-Acid Battery Simulations from Porous-Electrode Theory: + Part I. Physical Model. Journal of The Electrochemical Society, + 166(12):A2363–A2371, 2019. doi:10.1149/2.0301910jes. + +Lithium-ion parameter sets +-------------------------- + * Ai2020 : + - Weilong Ai, Ludwig Kraft, Johannes Sturm, Andreas Jossen, and Billy Wu. + Electrochemical thermal-mechanical modelling of stress inhomogeneity in + lithium-ion pouch cells. Journal of The Electrochemical Society, 167(1):013512, + 2019. doi:10.1149/2.0122001JES. + * Chen2020 : + - Chang-Hui Chen, Ferran Brosa Planella, Kieran O'Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. Development of Experimental Techniques + for Parameterization of Multi-scale Lithium-ion Battery Models. Journal of The + Electrochemical Society, 167(8):080534, 2020. doi:10.1149/1945-7111/ab9050. + * Chen2020_composite : + - Weilong Ai, Niall Kirkaldy, Yang Jiang, Gregory Offer, Huizhi Wang, and Billy + Wu. A composite electrode model for lithium-ion batteries with silicon/graphite + negative electrodes. Journal of Power Sources, 527:231142, 2022. URL: + https://www.sciencedirect.com/science/article/pii/S0378775322001604, + doi:https://doi.org/10.1016/j.jpowsour.2022.231142. + - Chang-Hui Chen, Ferran Brosa Planella, Kieran O'Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. Development of Experimental Techniques + for Parameterization of Multi-scale Lithium-ion Battery Models. Journal of The + Electrochemical Society, 167(8):080534, 2020. doi:10.1149/1945-7111/ab9050. + * Ecker2015 : + - Madeleine Ecker, Stefan Käbitz, Izaro Laresgoiti, and Dirk Uwe Sauer. + Parameterization of a Physico-Chemical Model of a Lithium-Ion Battery: II. + Model Validation. Journal of The Electrochemical Society, 162(9):A1849–A1857, + 2015. doi:10.1149/2.0541509jes. + - Madeleine Ecker, Thi Kim Dung Tran, Philipp Dechent, Stefan Käbitz, Alexander + Warnecke, and Dirk Uwe Sauer. Parameterization of a Physico-Chemical Model of a + Lithium-Ion Battery: I. Determination of Parameters. Journal of the + Electrochemical Society, 162(9):A1836–A1848, 2015. doi:10.1149/2.0551509jes. + - Alastair Hales, Laura Bravo Diaz, Mohamed Waseem Marzook, Yan Zhao, Yatish + Patel, and Gregory Offer. The cell cooling coefficient: a standard to define + heat rejection from lithium-ion batteries. Journal of The Electrochemical + Society, 166(12):A2383, 2019. + - Giles Richardson, Ivan Korotkin, Rahifa Ranom, Michael Castle, and Jamie M. + Foster. Generalised single particle models for high-rate operation of graded + lithium-ion electrodes: systematic derivation and validation. Electrochimica + Acta, 339:135862, 2020. doi:10.1016/j.electacta.2020.135862. + - Yan Zhao, Yatish Patel, Teng Zhang, and Gregory J Offer. Modeling the effects + of thermal gradients induced by tab and surface cooling on lithium ion cell + performance. Journal of The Electrochemical Society, 165(13):A3169, 2018. + * Marquis2019 : + - Scott G. Marquis, Valentin Sulzer, Robert Timms, Colin P. Please, and S. Jon + Chapman. An asymptotic derivation of a single particle model with electrolyte. + Journal of The Electrochemical Society, 166(15):A3693–A3706, 2019. + doi:10.1149/2.0341915jes. + * Mohtat2020 : + - Peyman Mohtat, Suhak Lee, Valentin Sulzer, Jason B. Siegel, and Anna G. + Stefanopoulou. Differential Expansion and Voltage Model for Li-ion Batteries at + Practical Charging Rates. Journal of The Electrochemical Society, + 167(11):110561, 2020. doi:10.1149/1945-7111/aba5d1. + * NCA_Kim2011 : + - Gi-Heon Kim, Kandler Smith, Kyu-Jin Lee, Shriram Santhanagopalan, and Ahmad + Pesaran. Multi-domain modeling of lithium-ion batteries encompassing + multi-physics in varied length scales. Journal of the Electrochemical Society, + 158(8):A955–A969, 2011. doi:10.1149/1.3597614. + * OKane2022 : + - Chang-Hui Chen, Ferran Brosa Planella, Kieran O'Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. Development of Experimental Techniques + for Parameterization of Multi-scale Lithium-ion Battery Models. Journal of The + Electrochemical Society, 167(8):080534, 2020. doi:10.1149/1945-7111/ab9050. + - Simon E. J. O'Kane, Ian D. Campbell, Mohamed W. J. Marzook, Gregory J. Offer, + and Monica Marinescu. Physical origin of the differential voltage minimum + associated with lithium plating in li-ion batteries. Journal of The + Electrochemical Society, 167(9):090540, may 2020. URL: + https://doi.org/10.1149/1945-7111/ab90ac, doi:10.1149/1945-7111/ab90ac. + - Simon E. J. O'Kane, Weilong Ai, Ganesh Madabattula, Diego Alonso-Alvarez, + Robert Timms, Valentin Sulzer, Jacqueline Sophie Edge, Billy Wu, Gregory J. + Offer, and Monica Marinescu. Lithium-ion battery degradation: how to model it. + Phys. Chem. Chem. Phys., 24:7909-7922, 2022. URL: + http://dx.doi.org/10.1039/D2CP00417H, doi:10.1039/D2CP00417H. + * ORegan2022 : + - Chang-Hui Chen, Ferran Brosa Planella, Kieran O'Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. Development of Experimental Techniques + for Parameterization of Multi-scale Lithium-ion Battery Models. Journal of The + Electrochemical Society, 167(8):080534, 2020. doi:10.1149/1945-7111/ab9050. + - Kieran O'Regan, Ferran Brosa Planella, W. Dhammika Widanage, and Emma Kendrick. + Thermal-electrochemical parameters of a high energy lithium-ion cylindrical + battery. Electrochimica Acta, 425:140700, 2022. + doi:10.1016/j.electacta.2022.140700. + * Prada2013 : + - Chang-Hui Chen, Ferran Brosa Planella, Kieran O'Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. Development of Experimental Techniques + for Parameterization of Multi-scale Lithium-ion Battery Models. Journal of The + Electrochemical Society, 167(8):080534, 2020. doi:10.1149/1945-7111/ab9050. + - Michael J. Lain, James Brandon, and Emma Kendrick. Design strategies for high + power vs. high energy lithium ion cells. Batteries, 5(4):64, 2019. + doi:10.3390/batteries5040064. + - Andreas Nyman, Mårten Behm, and Göran Lindbergh. Electrochemical + characterisation and modelling of the mass transport phenomena in lipf6–ec–emc + electrolyte. Electrochimica Acta, 53(22):6356–6365, 2008. + - Eric Prada, D. Di Domenico, Y. Creff, J. Bernard, Valérie Sauvant-Moynot, and + François Huet. A simplified electrochemical and thermal aging model of + LiFePO4-graphite Li-ion batteries: power and capacity fade simulations. Journal + of The Electrochemical Society, 160(4):A616, 2013. doi:10.1149/2.053304jes. + * Ramadass2004 : + - P Ramadass, Bala Haran, Parthasarathy M Gomadam, Ralph White, and Branko N + Popov. Development of first principles capacity fade model for li-ion cells. + Journal of the Electrochemical Society, 151(2):A196, 2004. + doi:10.1149/1.1634273. + * Xu2019 : + - Lars Ole Valøen and Jan N Reimers. Transport properties of lipf6-based li-ion + battery electrolytes. Journal of The Electrochemical Society, 152(5):A882, + 2005. + - Shanshan Xu, Kuan-Hung Chen, Neil P Dasgupta, Jason B Siegel, and Anna G + Stefanopoulou. Evolution of dead lithium growth in lithium metal batteries: + experimentally validated model of the apparent capacity loss. Journal of The + Electrochemical Society, 166(14):A3456, 2019. +""" import warnings class ParameterSets: - def __getattribute__(self, name): - # kept for testing for now - if name == "Ai2020": - out = { - "chemistry": "lithium_ion", - "cell": "Enertech_Ai2020", - "negative electrode": "graphite_Ai2020", - "separator": "separator_Ai2020", - "positive electrode": "lico2_Ai2020", - "electrolyte": "lipf6_Enertech_Ai2020", - "experiment": "1C_discharge_from_full_Ai2020", - "sei": "example", - "citation": "Ai2019", - } - # For backwards compatibility, parameter sets that used to be defined in this - # file now return the name as a string, which will load the same parameter - # set as before when passed to `ParameterValues` - elif name in [ - "Chen2020", - "Chen2020_composite", - "Ecker2015", - "Marquis2019", - "Mohtat2020", - "NCA_Kim2011", - "OKane2022", - "ORegan2022", - "Prada2013", - "Ramadass2004", - "Xu2019", - ]: - out = name - else: - raise ValueError(f"Parameter set '{name}' not found") + def __init__(self): + self.all_parameter_sets = { + "lead_acid": ["Sulzer2019"], + "lithium_ion": [ + "Ai2020", + "Chen2020", + "Chen2020_composite", + "Ecker2015", + "Marquis2019", + "Mohtat2020", + "NCA_Kim2011", + "OKane2022", + "ORegan2022", + "Prada2013", + "Ramadass2004", + "Xu2019", + ], + } + self.all_parameter_sets_list = [ + *self.all_parameter_sets["lead_acid"], + *self.all_parameter_sets["lithium_ion"], + ] - warnings.warn( - f"Parameter sets should be called directly by their name ({name})," - f"instead of via pybamm.parameter_sets (pybamm.parameter_sets.{name}).", - DeprecationWarning, - ) - return out + def __getattribute__(self, name): + try: + return super().__getattribute__(name) + except AttributeError as error: + if name == "Ai2020": + # kept for testing for now + out = { + "chemistry": "lithium_ion", + "cell": "Enertech_Ai2020", + "negative electrode": "graphite_Ai2020", + "separator": "separator_Ai2020", + "positive electrode": "lico2_Ai2020", + "electrolyte": "lipf6_Enertech_Ai2020", + "experiment": "1C_discharge_from_full_Ai2020", + "sei": "example", + "citation": "Ai2019", + } + # For backwards compatibility, parameter sets that used to be defined in + # this file now return the name as a string, which will load the same + # parameter set as before when passed to `ParameterValues` + elif name in self.all_parameter_sets_list: + out = name + else: + print("here") + raise error + warnings.warn( + f"Parameter sets should be called directly by their name ({name})," + f"instead of via pybamm.parameter_sets (pybamm.parameter_sets.{name}).", + DeprecationWarning, + ) + return out parameter_sets = ParameterSets() diff --git a/pybamm/parameters/update_parameter_sets_doc.py b/pybamm/parameters/update_parameter_sets_doc.py new file mode 100644 index 0000000000..99ca492ecf --- /dev/null +++ b/pybamm/parameters/update_parameter_sets_doc.py @@ -0,0 +1,114 @@ +""" +Automatically update the docstring of parameter_sets.py +""" + +from collections import defaultdict +import os +import re + +import pybtex + +import pybamm +from pybamm.parameters import parameter_sets + + +DOC_INTRO = """ +Parameter sets from papers. To see which parameter sets have been used in +your simulation, add the line "pybamm.print_citations()" to your script.""" + + +def get_ps_dict(): + """ + Returns {chemistry:(author_year, [citations])} from all dictionaries in + parameter_sets.py + """ + parameter_set_dict = defaultdict(list) + for chemistry, ps_names in pybamm.parameter_sets.all_parameter_sets.items(): + for ps_name in ps_names: + ps = pybamm.ParameterValues(ps_name) + citation = ps["citations"] + + # Enclose citation in a list if not already enclosed + if not isinstance(citation, list): + citation = [citation] + + parameter_set_dict[chemistry].append((ps_name, citation)) + return parameter_set_dict + + +def generate_ps_doc(parameter_set_dict): + """ + Generates docstring of parameter_sets.py from the given dictionary + """ + output_list = [DOC_INTRO] + citations_file = os.path.join(pybamm.root_dir(), "pybamm", "CITATIONS.txt") + + for ps_chemistry in sorted(parameter_set_dict.keys()): + output_list.append("") + ps_citations = parameter_set_dict[ps_chemistry] + chem_name = ps_chemistry.capitalize().replace("_", "-") + " " + "parameter sets" + output_list.append(chem_name) + dashes = "-" * len(ps_chemistry) + "-" * 15 + output_list.append(dashes) + + for ps_name, ps_citation in sorted(ps_citations): + citations = pybtex.format_from_file( + citations_file, + style="plain", + output_backend="plaintext", + citations=ps_citation, + nocite=True, + ) + # Remove citation labels "[3]" + citations = re.split(r"(?:^|\n)\[\d+\]\s", citations) + # Remove empty strings + citations = filter(bool, citations) + fmt_citations = [] + for citation in citations: + # Break line at the first space before 80 characters + citation_parts = re.findall(r"(.{1,79})(?:\s|$)", citation) + # first_line = citation.split('\n') + + indent_citation_parts = [] + for idx, citation_part in enumerate(citation_parts): + if idx == 0: + citation_part = "- " + citation_part + else: + citation_part = " " + citation_part + indent_citation_parts.append(" " * 7 + citation_part) + + # Join to create a single citation paragraph + citation = "\n".join(indent_citation_parts) + fmt_citations.append(citation) + fmt_citations = "\n".join(fmt_citations) + ps_doc = f" * {ps_name:} :\n{fmt_citations}" + output_list.append(ps_doc) + + output = "\n".join(output_list) + output += "\n" + return output + + +def update_doc(generated_doc): + """ + Opens parameter_sets.py, replaces the docstring and then writes it + """ + with open( + os.path.join(pybamm.root_dir(), "pybamm", "parameters", "parameter_sets.py"), + "r+", + ) as ps_fp: + ps_output = ps_fp.read() + ps_output = ps_output.replace(parameter_sets.__doc__, generated_doc) + ps_fp.truncate(0) + ps_fp.seek(0) + ps_fp.write(ps_output) + + +def main(): + parameter_set_dict = get_ps_dict() + generated_doc = generate_ps_doc(parameter_set_dict) + update_doc(generated_doc) + + +if __name__ == "__main__": + main() diff --git a/tests/unit/test_experiments/test_simulation_with_experiment.py b/tests/unit/test_experiments/test_simulation_with_experiment.py index b8b187982a..8c24bac17b 100644 --- a/tests/unit/test_experiments/test_simulation_with_experiment.py +++ b/tests/unit/test_experiments/test_simulation_with_experiment.py @@ -5,7 +5,6 @@ import pybamm import numpy as np import os -import pandas as pd import unittest diff --git a/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_Yang2017.py b/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_Yang2017.py index 08b9277504..8dfe6a98ce 100644 --- a/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_Yang2017.py +++ b/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_Yang2017.py @@ -3,7 +3,6 @@ # import pybamm import unittest -import numpy as np class TestYang2017(unittest.TestCase): diff --git a/tests/unit/test_parameters/test_parameter_values.py b/tests/unit/test_parameters/test_parameter_values.py index 6697fc8905..7308a0a9c4 100644 --- a/tests/unit/test_parameters/test_parameter_values.py +++ b/tests/unit/test_parameters/test_parameter_values.py @@ -5,7 +5,6 @@ import os import tempfile import shutil -import subprocess import unittest import inspect @@ -111,7 +110,8 @@ def test_update(self): # converts to dict if not param = pybamm.ParameterValues("Ai2020") param_from_csv = pybamm.ParameterValues( - "lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/parameters.csv" + "lithium_ion/testing_only/" + "negative_electrodes/graphite_Ai2020/parameters.csv" ) param.update(param_from_csv) # equate values diff --git a/tests/unit/test_parameters/test_parameters_cli.py b/tests/unit/test_parameters/test_parameters_cli.py index ae5f1a5365..27a5c5db54 100644 --- a/tests/unit/test_parameters/test_parameters_cli.py +++ b/tests/unit/test_parameters/test_parameters_cli.py @@ -3,16 +3,10 @@ # command line interface # -import os -import subprocess import pybamm -import csv -import tempfile import unittest -import platform -@unittest.skipIf(platform.system() == "Windows", "Skipped for Windows") class TestParametersCLI(unittest.TestCase): def test_error(self): with self.assertRaisesRegex(NotImplementedError, "deprecated"): diff --git a/tests/unit/test_parameters/test_update_parameter_sets_doc.py b/tests/unit/test_parameters/test_update_parameter_sets_doc.py new file mode 100644 index 0000000000..996234b746 --- /dev/null +++ b/tests/unit/test_parameters/test_update_parameter_sets_doc.py @@ -0,0 +1,66 @@ +""" +Tests for the update_parameter_sets_doc.py +""" +from pybamm.parameters.update_parameter_sets_doc import get_ps_dict, generate_ps_doc +import pybamm +import unittest + + +DOC = """ +Parameter sets from papers. The 'citation' entry provides a reference to the appropriate +paper in the file "pybamm/CITATIONS.txt". To see which parameter sets have been used in +your simulation, add the line "pybamm.print_citations()" to your script. + +Lead-acid parameter sets +------------------------ + * Sulzer2019 : + - Valentin Sulzer, S. Jon Chapman, Colin P. Please, David A. Howey, and Charles + W. Monroe. Faster Lead-Acid Battery Simulations from Porous-Electrode Theory: + Part I. Physical Model. Journal of The Electrochemical Society, + 166(12):A2363–A2371, 2019. doi:10.1149/2.0301910jes. + +Lithium-ion parameter sets +-------------------------- + * Prada2013 : + - Chang-Hui Chen, Ferran Brosa Planella, Kieran O'Regan, Dominika Gastol, W. + Dhammika Widanage, and Emma Kendrick. Development of Experimental Techniques + for Parameterization of Multi-scale Lithium-ion Battery Models. Journal of The + Electrochemical Society, 167(8):080534, 2020. doi:10.1149/1945-7111/ab9050. + - Michael J. Lain, James Brandon, and Emma Kendrick. Design strategies for high + power vs. high energy lithium ion cells. Batteries, 5(4):64, 2019. + doi:10.3390/batteries5040064. + - Eric Prada, D. Di Domenico, Y. Creff, J. Bernard, Valérie Sauvant-Moynot, and + François Huet. A simplified electrochemical and thermal aging model of + LiFePO4-graphite Li-ion batteries: power and capacity fade simulations. Journal + of The Electrochemical Society, 160(4):A616, 2013. doi:10.1149/2.053304jes. +""" + +AUTHOR_YEAR_DICT = { + "lithium_ion": [ + ("Prada2013", ["Chen2020", "Lain2019", "Prada2013"]), + ], + "lead_acid": [("Sulzer2019", ["Sulzer2019physical"])], +} + + +class TestUpdateParameterSetsDoc(unittest.TestCase): + def test_get_ps_dict(self): + output = get_ps_dict() + for key, values in AUTHOR_YEAR_DICT.items(): + output_values = output.get(key, []) + for value in values: + self.assertIn(value, output_values) + + def test_generate_ps_doc(self): + output = generate_ps_doc(AUTHOR_YEAR_DICT) + self.assertEqual(output, DOC) + + +if __name__ == "__main__": + print("Add -v for more debug output") + import sys + + if "-v" in sys.argv: + debug = True + pybamm.settings.debug_mode = True + unittest.main() diff --git a/tests/unit/test_util.py b/tests/unit/test_util.py index 8647082e0e..c0df52373c 100644 --- a/tests/unit/test_util.py +++ b/tests/unit/test_util.py @@ -4,11 +4,8 @@ import numpy as np import os import pybamm -import shutil import tempfile import unittest -import importlib -import subprocess from unittest.mock import patch from io import StringIO From f7ca03a3cb879b43fc6e29f3c7716d6b9eea8a5b Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Thu, 6 Oct 2022 12:40:18 -0400 Subject: [PATCH 19/28] #2334 fix test, try full path in codecov.yml --- .github/codecov.yml | 2 +- pybamm/parameters/parameter_sets.py | 16 +--------------- .../test_parameters/test_parameter_values.py | 14 +++++++++++++- .../test_update_parameter_sets_doc.py | 8 +++++--- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/codecov.yml b/.github/codecov.yml index 0e71eda5de..3c50d2795f 100644 --- a/.github/codecov.yml +++ b/.github/codecov.yml @@ -1,3 +1,3 @@ ignore: - - Ai2020_test.py + - pybamm/input/parameters/lithium_ion/Ai2020_test.py - pybamm/install_odes.py diff --git a/pybamm/parameters/parameter_sets.py b/pybamm/parameters/parameter_sets.py index 7af7eda31c..af42ef2683 100644 --- a/pybamm/parameters/parameter_sets.py +++ b/pybamm/parameters/parameter_sets.py @@ -151,26 +151,12 @@ def __getattribute__(self, name): try: return super().__getattribute__(name) except AttributeError as error: - if name == "Ai2020": - # kept for testing for now - out = { - "chemistry": "lithium_ion", - "cell": "Enertech_Ai2020", - "negative electrode": "graphite_Ai2020", - "separator": "separator_Ai2020", - "positive electrode": "lico2_Ai2020", - "electrolyte": "lipf6_Enertech_Ai2020", - "experiment": "1C_discharge_from_full_Ai2020", - "sei": "example", - "citation": "Ai2019", - } # For backwards compatibility, parameter sets that used to be defined in # this file now return the name as a string, which will load the same # parameter set as before when passed to `ParameterValues` - elif name in self.all_parameter_sets_list: + if name in self.all_parameter_sets_list: out = name else: - print("here") raise error warnings.warn( f"Parameter sets should be called directly by their name ({name})," diff --git a/tests/unit/test_parameters/test_parameter_values.py b/tests/unit/test_parameters/test_parameter_values.py index 7308a0a9c4..4039921bf0 100644 --- a/tests/unit/test_parameters/test_parameter_values.py +++ b/tests/unit/test_parameters/test_parameter_values.py @@ -965,7 +965,19 @@ def some_function(self): self.assertEqual(df[1]["c"], "[data]some_data") def test_export_python_script(self): - parameter_values = pybamm.ParameterValues(pybamm.parameter_sets.Ai2020) + parameter_values = pybamm.ParameterValues( + { + "chemistry": "lithium_ion", + "cell": "Enertech_Ai2020", + "negative electrode": "graphite_Ai2020", + "separator": "separator_Ai2020", + "positive electrode": "lico2_Ai2020", + "electrolyte": "lipf6_Enertech_Ai2020", + "experiment": "1C_discharge_from_full_Ai2020", + "sei": "example", + "citation": "Ai2019", + } + ) path = os.path.join("input", "parameters", "lithium_ion") parameter_values.export_python_script("Ai2020_test", path=path) diff --git a/tests/unit/test_parameters/test_update_parameter_sets_doc.py b/tests/unit/test_parameters/test_update_parameter_sets_doc.py index 996234b746..ab17c66de3 100644 --- a/tests/unit/test_parameters/test_update_parameter_sets_doc.py +++ b/tests/unit/test_parameters/test_update_parameter_sets_doc.py @@ -7,8 +7,7 @@ DOC = """ -Parameter sets from papers. The 'citation' entry provides a reference to the appropriate -paper in the file "pybamm/CITATIONS.txt". To see which parameter sets have been used in +Parameter sets from papers. To see which parameter sets have been used in your simulation, add the line "pybamm.print_citations()" to your script. Lead-acid parameter sets @@ -29,6 +28,9 @@ - Michael J. Lain, James Brandon, and Emma Kendrick. Design strategies for high power vs. high energy lithium ion cells. Batteries, 5(4):64, 2019. doi:10.3390/batteries5040064. + - Andreas Nyman, Mårten Behm, and Göran Lindbergh. Electrochemical + characterisation and modelling of the mass transport phenomena in lipf6–ec–emc + electrolyte. Electrochimica Acta, 53(22):6356–6365, 2008. - Eric Prada, D. Di Domenico, Y. Creff, J. Bernard, Valérie Sauvant-Moynot, and François Huet. A simplified electrochemical and thermal aging model of LiFePO4-graphite Li-ion batteries: power and capacity fade simulations. Journal @@ -37,7 +39,7 @@ AUTHOR_YEAR_DICT = { "lithium_ion": [ - ("Prada2013", ["Chen2020", "Lain2019", "Prada2013"]), + ("Prada2013", ["Chen2020", "Lain2019", "Prada2013", "Nyman2008"]), ], "lead_acid": [("Sulzer2019", ["Sulzer2019physical"])], } From 60bdd6012b1eb11758dc32f07977b0af1b67b182 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Thu, 6 Oct 2022 13:21:16 -0400 Subject: [PATCH 20/28] #2334 changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f35c2c6b5e..121ac15d63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,8 @@ ## Breaking change -- Parameter sets should now be provided as single python files containing all parameters and functions. Parameters provided as "data" (e.g. OCP vs SOC) can still be csv files, but must be either in the same folder as the parameter file or in a subfolder called "data/" +- Removed parameter cli tools (add/edit/remove parameters). Parameter sets can now more easily be added via python scripts. ([#2342](https://github.com/pybamm-team/PyBaMM/pull/2342)) +- Parameter sets should now be provided as single python files containing all parameters and functions. Parameters provided as "data" (e.g. OCP vs SOC) can still be csv files, but must be either in the same folder as the parameter file or in a subfolder called "data/". See for example [Ai2020](https://github.com/pybamm-team/PyBaMM/tree/develop/pybamm/input/parameters/lithium_ion/Ai2020.py) ([#2342](https://github.com/pybamm-team/PyBaMM/pull/2342)) # [v22.9](https://github.com/pybamm-team/PyBaMM/tree/v22.9) - 2022-09-30 From 5051cd465c4c91d4c451a283a6c14d01e703c703 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Thu, 6 Oct 2022 14:06:24 -0400 Subject: [PATCH 21/28] move generated parameter file outside of pybamm dir --- .github/codecov.yml | 1 - .../parameter-management.ipynb | 436 ------------------ pybamm/parameters/parameter_values.py | 33 +- pybamm/parameters_cli.py | 4 +- .../test_parameters/test_parameter_values.py | 35 +- 5 files changed, 40 insertions(+), 469 deletions(-) delete mode 100644 examples/notebooks/parameterization/parameter-management.ipynb diff --git a/.github/codecov.yml b/.github/codecov.yml index 3c50d2795f..1f0452076a 100644 --- a/.github/codecov.yml +++ b/.github/codecov.yml @@ -1,3 +1,2 @@ ignore: - - pybamm/input/parameters/lithium_ion/Ai2020_test.py - pybamm/install_odes.py diff --git a/examples/notebooks/parameterization/parameter-management.ipynb b/examples/notebooks/parameterization/parameter-management.ipynb deleted file mode 100644 index 84a9ef3791..0000000000 --- a/examples/notebooks/parameterization/parameter-management.ipynb +++ /dev/null @@ -1,436 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Parameter management\n", - "\n", - "PyBamm comes with a set of pre-defined parameters for common chemistries. These files are located inside your PyBaMM installation directory, typically something like\n", - "```\n", - "../venv/lib/pythonX.Y/site-packages/pybamm/input/parameters\n", - "```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The `input/parameters` directory is organised as follows:\n", - "```\n", - "input/parameters\n", - " lithium_ion/ # chemistry\n", - " negative_electrodes/ # Component\n", - " graphite_Chen2020/ # parameter set\n", - " parameters.csv\n", - "\t graphite_LGM50_diffusivity_Chen2020.py\n", - " ...\n", - " graphite_mcmb2528_Marquis2019/\n", - " graphite_Ecker2015/\n", - " ...\n", - " positive_electrodes/\n", - " cells/\n", - " electrolytes/\n", - " seis/\n", - " separators/\n", - " experiments/\n", - " lead_acid/\n", - " ...\n", - "```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "When setting parameter values using `pybamm.ParameterValues` and a filename, the file is searched in several locations, described by\n", - "the variable `pybamm.PARAMETER_PATH`.\n", - "The default is " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Note: you may need to restart the kernel to use updated packages.\n" - ] - }, - { - "data": { - "text/plain": [ - "['/home/priyanshu/work/PyBaMM',\n", - " '/home/priyanshu/work/notebooks',\n", - " '/home/priyanshu/work/PyBaMM/pybamm/input/parameters']" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "%pip install pybamm -q # install PyBaMM if it is not installed\n", - "import pybamm\n", - "pybamm.PARAMETER_PATH" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "which means that parameter files will first be searched in the current directory, and then the `input/parameters` directory within the \n", - "PyBaMM installation directory." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Editing the default parameters\n", - "It is often much easier to define new parameters by editing exiting ones.\n", - "\n", - "We recommend not to alter the default parameters provided with the PyBaMM installation. Instead, you can pull all parameter set for\n", - "a given chemistry into the current directory:" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Directory lithium_ion does not exist.\n" - ] - } - ], - "source": [ - "%%bash\n", - "if [[ ! -d \"lithium_ion\" ]]; then\n", - "echo \"Directory lithium_ion does not exist.\"\n", - "fi" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "%%bash\n", - "pybamm_edit_parameter lithium_ion" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The above commands will create a `lithium_ion` directory in the current directory, populated with copies of the default parameters, for editing:" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "cells\n", - "electrolytes\n", - "experiments\n", - "lithium_platings\n", - "negative_electrodes\n", - "positive_electrodes\n", - "seis\n", - "separators\n" - ] - } - ], - "source": [ - "%%bash\n", - "ls lithium_ion" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As an example, let's create a new parameter file for the `cell` component, for the `lithium_ion` chemistry. We first create a new directory `my_new_param_set`:" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "%%bash\n", - "mkdir lithium_ion/cells/my_new_param_set" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "and write some data in a file `my_new_param_set/param_file.csv`. This is done using python in this simple example, but it can be done using the text editor of your choice to create a new file or edit an existing file." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "# Create example parameter file\n", - "f = open(\"lithium_ion/cells/my_new_param_set/param_file.csv\", \"w+\")\n", - "f.write(\n", - "\"\"\"\n", - "Name [units],Value\n", - "a, 4\n", - "b, 5\n", - "c, 6\n", - "\"\"\"\n", - ")\n", - "f.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Adding a parameter directory\n", - "You can add a search location by modifying the `PARAMETER_PATH` list.\n", - "Let's add our new parameter directory to the list, in first position so that it is searched first:" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['lithium_ion/cells/my_new_param_set',\n", - " '/home/priyanshu/work/PyBaMM',\n", - " '/home/priyanshu/work/notebooks',\n", - " '/home/priyanshu/work/PyBaMM/pybamm/input/parameters']" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pybamm.PARAMETER_PATH.insert(0, \"lithium_ion/cells/my_new_param_set\")\n", - "pybamm.PARAMETER_PATH" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note that relative paths added to `pybamm.PARAMETER_PATH` are considered relative to the current directory. In the above example, if you change directory, the new parameter `my_new_param_set` will not be found." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's check that our new parameter file can be read:" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'a': 4,\n", - " 'b': 5,\n", - " 'c': 6}" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pybamm.ParameterValues(\"param_file.csv\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Contributing a new parameter set\n", - "Once you're happy with a particular parameter set of your creation, you may want to contribute it to the PyBaMM parameter distribution, so\n", - "that it comes bundled with future release of PyBaMM.\n", - "This will require you to open a Pull Request on the PyBaMM repository, a process that is described here.\n", - "\n", - "A prerequisite is that you add you parameter set to the default parameter directory. You could manually copy the corresponding directory to your installation directory, but the command `pybamm_add_param` can do it for you:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "%%bash\n", - "# pybamm_add_parameter \n", - "pybamm_add_parameter lithium_ion/cells/my_new_param_set lithium_ion cells" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's remove the `my_new_param_set` from the parameter search path to check that the parameter directory was added correctly to set of default parameters:" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['/home/priyanshu/work/PyBaMM',\n", - " '/home/priyanshu/work/notebooks',\n", - " '/home/priyanshu/work/PyBaMM/pybamm/input/parameters']" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pybamm.PARAMETER_PATH.remove(\"lithium_ion/cells/my_new_param_set\")\n", - "pybamm.PARAMETER_PATH" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'a': 4,\n", - " 'b': 5,\n", - " 'c': 6}" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pybamm.ParameterValues(\"lithium_ion/cells/my_new_param_set/param_file.csv\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If you think you made a mistake, you can always delete a specific parameter set using `pybamm_rm_param`.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "%%bash\n", - "pybamm_rm_parameter -f lithium_ion/cells/my_new_param_set lithium_ion cells" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's remove the local lithium_ion directory to leave this directory as we found it" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "%%bash\n", - "rm -rf lithium_ion" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## References\n", - "\n", - "The relevant papers for this notebook are:" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1] Charles R. Harris, K. Jarrod Millman, Stéfan J. van der Walt, Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, Julian Taylor, Sebastian Berg, Nathaniel J. Smith, and others. Array programming with NumPy. Nature, 585(7825):357–362, 2020. doi:10.1038/s41586-020-2649-2.\n", - "[2] Valentin Sulzer, Scott G. Marquis, Robert Timms, Martin Robinson, and S. Jon Chapman. Python Battery Mathematical Modelling (PyBaMM). ECSarXiv. February, 2020. doi:10.1149/osf.io/67ckj.\n", - "\n" - ] - } - ], - "source": [ - "pybamm.print_citations()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/pybamm/parameters/parameter_values.py b/pybamm/parameters/parameter_values.py index b64db97013..bebafd2aad 100644 --- a/pybamm/parameters/parameter_values.py +++ b/pybamm/parameters/parameter_values.py @@ -961,7 +961,9 @@ def find_parameter(path): return trial_path raise FileNotFoundError("Could not find parameter {}".format(path)) - def export_python_script(self, name, path=None): + def export_python_script( + self, name, old_parameters_path="", new_parameters_path="" + ): """ Print a python script that can be used to reproduce the parameter set @@ -969,18 +971,11 @@ def export_python_script(self, name, path=None): ---------- name : string The name to save the parameter set under - path : string, optional - Optional path for the location where the parameter set should be saved + old_parameters_path : string, optional + Optional path for the location where to find the old parameters. + new_parameters_path : string, optional + Optional path for the location where to save the new parameters. """ - # Process file name - filename = name - if not filename.endswith(".py"): - filename = filename + ".py" - if path is not None: - filename = os.path.join(path, filename) - path = pybamm.get_parameters_filepath(path) - filename = pybamm.get_parameters_filepath(filename) - # Initialize preamble = "import pybamm\n" function_output = "" @@ -1007,13 +1002,15 @@ def export_python_script(self, name, path=None): # and load it in the parameter set data_name = v[0] data_file_old = os.path.join( - path, - "testing_only", + old_parameters_path, component_group.replace(" ", "_") + "s", self.chemistry[component_group], f"{data_name}.csv", ) - data_file_new = os.path.join(path, "data", f"{data_name}.csv") + data_path = os.path.join(new_parameters_path, "data") + if not os.path.exists(data_path): + os.makedirs(data_path) + data_file_new = os.path.join(data_path, f"{data_name}.csv") shutil.copyfile(data_file_old, data_file_new) # add data output @@ -1084,6 +1081,12 @@ def export_python_script(self, name, path=None): output = output.replace(f"({funcname}(", f"(pybamm.{funcname}(") output = output.replace("constants", "pybamm.constants") + # Process file name + filename = name + if not filename.endswith(".py"): + filename = filename + ".py" + filename = os.path.join(new_parameters_path, filename) + # save to file with open(filename, "w") as f: f.write(output) diff --git a/pybamm/parameters_cli.py b/pybamm/parameters_cli.py index bb41aad97a..90950b23ee 100644 --- a/pybamm/parameters_cli.py +++ b/pybamm/parameters_cli.py @@ -1,7 +1,9 @@ def raise_error(): raise NotImplementedError( "parameters cli has been deprecated. " - "Parameters should now be defined via python files." + "Parameters should now be defined via python files (see " + "https://github.com/pybamm-team/PyBaMM/tree/develop/pybamm/input/parameters/lithium_ion/Ai2020.py" # noqa: E501 + " for example)" ) diff --git a/tests/unit/test_parameters/test_parameter_values.py b/tests/unit/test_parameters/test_parameter_values.py index 4039921bf0..956e0ac2ff 100644 --- a/tests/unit/test_parameters/test_parameter_values.py +++ b/tests/unit/test_parameters/test_parameter_values.py @@ -7,6 +7,7 @@ import shutil import unittest import inspect +import importlib import numpy as np import pandas as pd @@ -20,14 +21,6 @@ class TestParameterValues(unittest.TestCase): - def tearDown(self): - # Make sure the local lithium_ion directory is removed - try: - shutil.rmtree("lithium_ion") - except FileNotFoundError: - pass - return super().tearDown() - def test_find_parameter(self): f = tempfile.NamedTemporaryFile() pybamm.PARAMETER_PATH.append(tempfile.gettempdir()) @@ -979,10 +972,22 @@ def test_export_python_script(self): } ) path = os.path.join("input", "parameters", "lithium_ion") - parameter_values.export_python_script("Ai2020_test", path=path) + parameter_values.export_python_script( + "Ai2020_test", + old_parameters_path=os.path.join( + pybamm.root_dir(), + "pybamm", + "input", + "parameters", + "lithium_ion", + "testing_only", + ), + ) # test that loading the parameter set works - new_parameter_values = pybamm.ParameterValues("Ai2020_test") + module = importlib.import_module("Ai2020_test") + function = getattr(module, "get_parameter_values") + new_parameter_values = pybamm.ParameterValues(function()) # Parameters should be the same self.assertEqual( @@ -1012,12 +1017,10 @@ def test_export_python_script(self): ) # remove the file - for ext in [".py", ".pyc"]: - filename = os.path.join( - pybamm.ABSOLUTE_PATH, "pybamm", path, "Ai2020_test" + ext - ) - if os.path.exists(filename): - os.remove(filename) + filename = os.path.join("Ai2020_test.py") + if os.path.exists(filename): + os.remove(filename) + shutil.rmtree("data") if __name__ == "__main__": From f73ddd504e995665a5f023f6c8b56a1310e89f51 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Thu, 6 Oct 2022 14:09:40 -0400 Subject: [PATCH 22/28] flake8 --- tests/unit/test_parameters/test_parameter_values.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/unit/test_parameters/test_parameter_values.py b/tests/unit/test_parameters/test_parameter_values.py index 956e0ac2ff..94761b7e6e 100644 --- a/tests/unit/test_parameters/test_parameter_values.py +++ b/tests/unit/test_parameters/test_parameter_values.py @@ -971,7 +971,6 @@ def test_export_python_script(self): "citation": "Ai2019", } ) - path = os.path.join("input", "parameters", "lithium_ion") parameter_values.export_python_script( "Ai2020_test", old_parameters_path=os.path.join( From 7abfe8486b3f461b1cf42bf7073abf7744f2f606 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Thu, 6 Oct 2022 16:36:26 -0400 Subject: [PATCH 23/28] #2334 coverage --- .../lithium_ion/Yang2017.py | 4 -- pybamm/parameters/parameter_sets.py | 2 +- pybamm/parameters/parameter_values.py | 3 -- pybamm/parameters/process_parameter_data.py | 4 +- pybamm/util.py | 6 +-- .../test_parameters/test_parameter_sets.py | 26 ++++++++++ .../test_parameter_sets/test_LCO_Ai2020.py | 19 +++++-- .../test_process_parameter_data.py | 51 +++++++++++++++++++ tests/unit/test_util.py | 6 --- 9 files changed, 98 insertions(+), 23 deletions(-) create mode 100644 tests/unit/test_parameters/test_parameter_sets.py create mode 100644 tests/unit/test_parameters/test_process_parameter_data.py diff --git a/pybamm/models/full_battery_models/lithium_ion/Yang2017.py b/pybamm/models/full_battery_models/lithium_ion/Yang2017.py index fa34efe2fa..f55df43972 100644 --- a/pybamm/models/full_battery_models/lithium_ion/Yang2017.py +++ b/pybamm/models/full_battery_models/lithium_ion/Yang2017.py @@ -13,7 +13,3 @@ def __init__(self, options=None, name="Yang2017", build=True): } super().__init__(options=options, name=name) pybamm.citations.register("Yang2017") - - @property - def default_parameter_values(self): - return pybamm.ParameterValues("Yang2017") diff --git a/pybamm/parameters/parameter_sets.py b/pybamm/parameters/parameter_sets.py index af42ef2683..35eb744136 100644 --- a/pybamm/parameters/parameter_sets.py +++ b/pybamm/parameters/parameter_sets.py @@ -159,7 +159,7 @@ def __getattribute__(self, name): else: raise error warnings.warn( - f"Parameter sets should be called directly by their name ({name})," + f"Parameter sets should be called directly by their name ({name}), " f"instead of via pybamm.parameter_sets (pybamm.parameter_sets.{name}).", DeprecationWarning, ) diff --git a/pybamm/parameters/parameter_values.py b/pybamm/parameters/parameter_values.py index bebafd2aad..64808f1fb4 100644 --- a/pybamm/parameters/parameter_values.py +++ b/pybamm/parameters/parameter_values.py @@ -174,9 +174,6 @@ def update_from_chemistry(self, chemistry): """ Load standard set of components from a 'chemistry' dictionary """ - if isinstance(chemistry, str): - chemistry = getattr(pybamm.parameter_sets, chemistry) - self.chemistry = chemistry base_chemistry = chemistry["chemistry"] diff --git a/pybamm/parameters/process_parameter_data.py b/pybamm/parameters/process_parameter_data.py index 753bc2fcfb..dd682ca99b 100644 --- a/pybamm/parameters/process_parameter_data.py +++ b/pybamm/parameters/process_parameter_data.py @@ -30,7 +30,7 @@ def _process_name(name, path, ext): _, name = os.path.split(filename) # Remove the extension from the name - return (filename, name[:-4]) + return (filename, name.split(".")[0]) def process_1D_data(name, path=None): @@ -57,4 +57,4 @@ def process_2D_data(name, path=None): data = json_data["data"] data[0] = [np.array(el) for el in data[0]] data[1] = np.array(data[1]) - return (name, data) + return (name, tuple(data)) diff --git a/pybamm/util.py b/pybamm/util.py index 892ac21601..00676f6c7f 100644 --- a/pybamm/util.py +++ b/pybamm/util.py @@ -245,7 +245,7 @@ def load_function(filename, funcname=None): if "pybamm/input/parameters" in filename or "pybamm\\input\\parameters" in filename: root_path = filename[filename.rfind("pybamm") :] # If the function is in the current working directory - elif os.getcwd() in filename: + elif os.getcwd() in filename: # pragma: no cover root_path = filename.replace(os.getcwd(), "") # If the function is not in the current working directory and the path provided is # absolute @@ -254,11 +254,11 @@ def load_function(filename, funcname=None): dir_path = os.path.split(filename)[0] os.chdir(dir_path) root_path = filename.replace(os.getcwd(), "") - else: + else: # pragma: no cover root_path = filename # getcwd() returns "C:\\" when in the root drive and "C:\\a\\b\\c" otherwise - if root_path[0] == "\\" or root_path[0] == "/": + if root_path[0] == "\\" or root_path[0] == "/": # pragma: no cover root_path = root_path[1:] path = root_path.replace("/", ".") diff --git a/tests/unit/test_parameters/test_parameter_sets.py b/tests/unit/test_parameters/test_parameter_sets.py new file mode 100644 index 0000000000..b0363f3968 --- /dev/null +++ b/tests/unit/test_parameters/test_parameter_sets.py @@ -0,0 +1,26 @@ +# +# Tests for the ParameterSets class +# + +import os +import numpy as np +import pybamm + +import unittest + + +class TestParameterSets(unittest.TestCase): + def test_parameter_sets(self): + self.assertEqual(pybamm.parameter_sets.Marquis2019, "Marquis2019") + with self.assertRaises(AttributeError): + pybamm.parameter_sets.not_a_real_parameter_set + + +if __name__ == "__main__": + print("Add -v for more debug output") + import sys + + if "-v" in sys.argv: + debug = True + pybamm.settings.debug_mode = True + unittest.main() diff --git a/tests/unit/test_parameters/test_parameter_sets/test_LCO_Ai2020.py b/tests/unit/test_parameters/test_parameter_sets/test_LCO_Ai2020.py index 421aedf858..16ba011c03 100644 --- a/tests/unit/test_parameters/test_parameter_sets/test_LCO_Ai2020.py +++ b/tests/unit/test_parameters/test_parameter_sets/test_LCO_Ai2020.py @@ -46,12 +46,23 @@ def test_functions(self): ) def test_standard_lithium_parameters(self): - parameter_values = pybamm.ParameterValues("Ai2020") + # test with chemistry dictionary format, for coverage + parameter_values = pybamm.ParameterValues( + { + "chemistry": "lithium_ion", + "cell": "Enertech_Ai2020", + "negative electrode": "graphite_Ai2020", + "separator": "separator_Ai2020", + "positive electrode": "lico2_Ai2020", + "electrolyte": "lipf6_Enertech_Ai2020", + "experiment": "1C_discharge_from_full_Ai2020", + "sei": "example", + "citation": "Ai2019", + } + ) options = {"particle mechanics": "swelling and cracking"} model = pybamm.lithium_ion.DFN(options) - sim = pybamm.Simulation(model, parameter_values=parameter_values) - sim.set_parameters() - sim.build() + parameter_values.process_model(model) if __name__ == "__main__": diff --git a/tests/unit/test_parameters/test_process_parameter_data.py b/tests/unit/test_parameters/test_process_parameter_data.py new file mode 100644 index 0000000000..ade04af7d4 --- /dev/null +++ b/tests/unit/test_parameters/test_process_parameter_data.py @@ -0,0 +1,51 @@ +# +# Tests for the parameter processing functions +# + +import os +import numpy as np +import pybamm + +import unittest + + +class TestProcessParameterData(unittest.TestCase): + def test_process_1D_data(self): + name = "lico2_data_example" + path = os.path.join( + pybamm.root_dir(), + "pybamm", + "input", + "parameters", + "lithium_ion", + "data", + ) + processed = pybamm.parameters.process_1D_data(name, path) + self.assertEqual(processed[0], name) + self.assertIsInstance(processed[1], tuple) + self.assertIsInstance(processed[1][0][0], np.ndarray) + self.assertIsInstance(processed[1][1], np.ndarray) + + def test_process_2D_data(self): + name = "lico2_diffusivity_Dualfoil1998_2D" + path = os.path.join(pybamm.root_dir(), "tests", "unit", "test_parameters") + processed = pybamm.parameters.process_2D_data(name, path) + self.assertEqual(processed[0], name) + self.assertIsInstance(processed[1], tuple) + self.assertIsInstance(processed[1][0][0], np.ndarray) + self.assertIsInstance(processed[1][0][1], np.ndarray) + self.assertIsInstance(processed[1][1], np.ndarray) + + def test_error(self): + with self.assertRaisesRegex(FileNotFoundError, "Could not find file"): + pybamm.parameters.process_1D_data("not_a_real_file", "not_a_real_path") + + +if __name__ == "__main__": + print("Add -v for more debug output") + import sys + + if "-v" in sys.argv: + debug = True + pybamm.settings.debug_mode = True + unittest.main() diff --git a/tests/unit/test_util.py b/tests/unit/test_util.py index c0df52373c..cb77637fe5 100644 --- a/tests/unit/test_util.py +++ b/tests/unit/test_util.py @@ -9,12 +9,6 @@ from unittest.mock import patch from io import StringIO -# Insert .../x/y/z/PyBaMM in sys.path when running this file individually -import sys - -if os.getcwd() not in sys.path: - sys.path.insert(0, os.getcwd()) - class TestUtil(unittest.TestCase): """ From a52681071c4379ff7fde16acd05d1a14b6182c92 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Thu, 6 Oct 2022 17:09:14 -0400 Subject: [PATCH 24/28] #2334 flake8 --- tests/unit/test_parameters/test_parameter_sets.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/unit/test_parameters/test_parameter_sets.py b/tests/unit/test_parameters/test_parameter_sets.py index b0363f3968..42107e84c0 100644 --- a/tests/unit/test_parameters/test_parameter_sets.py +++ b/tests/unit/test_parameters/test_parameter_sets.py @@ -2,8 +2,6 @@ # Tests for the ParameterSets class # -import os -import numpy as np import pybamm import unittest From 1fbf2a9d32fb2013ce0b51f71b6358f78187489c Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Thu, 6 Oct 2022 17:26:28 -0400 Subject: [PATCH 25/28] #2334 fix duplicated name --- .../{test_parameter_sets.py => test_parameter_sets_class.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tests/unit/test_parameters/{test_parameter_sets.py => test_parameter_sets_class.py} (100%) diff --git a/tests/unit/test_parameters/test_parameter_sets.py b/tests/unit/test_parameters/test_parameter_sets_class.py similarity index 100% rename from tests/unit/test_parameters/test_parameter_sets.py rename to tests/unit/test_parameters/test_parameter_sets_class.py From f01484825e281620c5cdd3dac4f3ad62cf034f65 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Thu, 6 Oct 2022 21:13:05 -0400 Subject: [PATCH 26/28] #2334 fix lead-acid tests --- tests/unit/test_parameters/test_lead_acid_parameters.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/unit/test_parameters/test_lead_acid_parameters.py b/tests/unit/test_parameters/test_lead_acid_parameters.py index 7a05e910d0..49e9d5d716 100644 --- a/tests/unit/test_parameters/test_lead_acid_parameters.py +++ b/tests/unit/test_parameters/test_lead_acid_parameters.py @@ -28,7 +28,6 @@ def test_parameters_defaults_lead_acid(self): parameters = pybamm.LeadAcidParameters() parameter_values = pybamm.lead_acid.BaseModel().default_parameter_values param_eval = parameter_values.print_parameters(parameters) - param_eval = {k: v[0] for k, v in param_eval.items()} # Diffusional C-rate should be smaller than C-rate self.assertLess(param_eval["C_e"], param_eval["C_rate"]) @@ -140,7 +139,6 @@ def test_functions_lead_acid(self): # Process parameter_values = pybamm.ParameterValues("Sulzer2019") param_eval = parameter_values.print_parameters(parameters) - param_eval = {k: v[0] for k, v in param_eval.items()} # Known values for dimensionless functions self.assertEqual(param_eval["D_e_1"], 1) @@ -155,12 +153,10 @@ def test_update_initial_state_of_charge(self): parameters = pybamm.LeadAcidParameters() parameter_values = pybamm.lead_acid.BaseModel().default_parameter_values param_eval = parameter_values.print_parameters(parameters) - param_eval = {k: v[0] for k, v in param_eval.items()} # Update initial state of charge parameter_values.update({"Initial State of Charge": 0.2}) param_eval_update = parameter_values.print_parameters(parameters) - param_eval_update = {k: v[0] for k, v in param_eval_update.items()} # Test that relevant parameters have changed as expected self.assertLess(param_eval_update["q_init"], param_eval["q_init"]) From 408db86070e7dfaf83055d64b9d264e5af990c76 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Thu, 6 Oct 2022 22:17:23 -0400 Subject: [PATCH 27/28] #2334 fix example --- .../parameterization/parameter-values.ipynb | 40 +++++++++---------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/examples/notebooks/parameterization/parameter-values.ipynb b/examples/notebooks/parameterization/parameter-values.ipynb index ff96cee537..bbe0a6b94c 100644 --- a/examples/notebooks/parameterization/parameter-values.ipynb +++ b/examples/notebooks/parameterization/parameter-values.ipynb @@ -122,7 +122,6 @@ "name": "stdout", "output_type": "stream", "text": [ - "Marquis2019 chemistry set is {'chemistry': 'lithium-ion', 'cell': 'kokam_Marquis2019', 'negative electrode': 'graphite_mcmb2528_Marquis2019', 'separator': 'separator_Marquis2019', 'positive electrode': 'lico2_Marquis2019', 'electrolyte': 'lipf6_Marquis2019', 'experiment': '1C_discharge_from_full_Marquis2019', 'sei': 'example', 'citation': 'Marquis2019'}\n", "Negative current collector thickness is 2.5e-05 m\n" ] } @@ -153,7 +152,7 @@ "parameter values are {'a': 4,\n", " 'b': 5,\n", " 'c': 6,\n", - " 'cube function': }\n" + " 'cube function': }\n" ] } ], @@ -180,7 +179,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": { "tags": [ "raises-exception" @@ -191,8 +190,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "method self.evaluate() not implemented\n", - " for symbol a of type \n" + "method self.evaluate() not implemented for symbol a of type \n" ] } ], @@ -218,7 +216,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -236,14 +234,14 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "16.0 = 16.0\n" + "64.0 = 64.0\n" ] } ], @@ -261,7 +259,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -306,19 +304,17 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABQkAAAGGCAYAAADYVwfrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAACTxUlEQVR4nOzdeVxU9f7H8dcZVhEHV1BcEHdxxS3FNM0yzK3FtHtLs8zqtmne289su9qmtl213bLUFtMy00otK9c0yzWVNDUUQhBXBkS2mfP7Y5REtkGBYXk/H4/zwHPme858Rhj4zud8v9+PYZqmiYiIiIiIiIiIiFRaFncHICIiIiIiIiIiIu6lJKGIiIiIiIiIiEglpyShiIiIiIiIiIhIJackoYiIiIiIiIiISCWnJKGIiIiIiIiIiEglpyShiIiIiIiIiIhIJackoYiIiIiIiIiISCWnJKGIiIiIiIiIiEglpyShiIiIiIiIiIhIJackoYhIEcyaNYvu3btTu3ZtfHx8aNSoEbfeeit79uy55GuOHj0af3//Yozy0n3xxRf84x//oFmzZlSpUoXGjRtz2223sX//fneHJiIiIlKq9uzZw/3330+PHj2oWrUqhmGwZs2ay7rm5MmTMQyD48ePF0+Ql+HHH3/krrvuolWrVlStWpX69eszdOhQtm7d6u7QRMRNlCQUESmCEydOMGDAAN577z2+++47pkyZwvbt27niiivYt2+fu8O7bNOnTyc1NZUnnniClStX8txzz7F9+3Y6dep0WYlQERERkfJmy5YtfPnll9SsWZN+/fq5O5xi99Zbb3Ho0CHGjRvH8uXLmTlzJomJiXTv3p0ff/zR3eGJiBsYpmma7g5CRKQ8+/333wkLC+Opp57imWeeKfL5o0eP5vPPPyclJaUEoiuaxMREAgMDcxw7cuQIjRs3ZtSoUbz33ntuikxERESkdDkcDiwW57iazz//nFtuuYXVq1fTp0+fS77m5MmTmTJlCseOHaN27drFFOmlyavfl5KSQrNmzWjbti3ff/+9myITEXfRSEIRKfMOHDjAnXfeSfPmzfHz86N+/foMHjyYXbt2uTs0AOrUqQOAp6fnZV1nz5499OvXj6pVq1KnTh0efPBBUlNTiyNEl13cUQQIDg6mQYMGxMbGlmosIiIiUnGV9f4dkJ0gLAmxsbHcdNNNWK1WAgICuP322zl27FiJPV9e8ur3+fv7ExYWpn6fSCWlJKGIlHlHjhyhVq1aTJs2jZUrV/LGG2/g6enp8hRfu91OVlZWoZvD4XA5JrvdTnp6Onv37uXuu+8mMDCQO++885JfY2ZmJtdffz39+vXjyy+/5MEHH+Sdd95hxIgRhZ7rcDhcen12u/2SYvvzzz85fPgwbdq0uaTzRURERC5WFvt3penGG2+kWbNmfP7550yePJkvv/yS6667jszMzALPM03TpdedlZV1SXElJSWxbds29ftEKqnLG/YiIlIKevfuTe/evbP37XY7AwcOpE2bNrzzzju8+uqrBZ7fr18/1q5dW+jz3HHHHcydO9elmKpWrUp6ejoALVq0YM2aNTRs2NClc/OSkZHBv//9bx5++GEArr32Wry8vHjiiSf46aef6NmzZ77nPvPMM0yZMqXQ5wgJCeHQoUNFiisrK4sxY8bg7+/PI488UqRzRURERPJTFvt3pemmm27ixRdfBKB///4EBQVx2223sWjRIm677bZ8z5s3b57LN6YvZWWxBx54gDNnzvDEE08U+VwRKf+UJBSRMi8rK4sXX3yRjz76iAMHDuS4w/r7778Xev4777xDcnJyoe2Ksi7Mxo0bycjI4ODBg/zvf/+jb9++/PDDD5d11/XiDuE///lPnnjiCVavXl1gkvCee+5h0KBBhV7fx8enSPGYpsmYMWNYv349ixcvvqwkqIiIiMiFykr/zuFw5BhtaBgGHh4ehV73cl3c7xs+fDh33HEHq1evLjBJOHjwYH799dcSiempp57i448/5rXXXqNz584l8hwiUrYpSSgiZd6ECRN44403mDhxIldddRU1atTAYrFw9913c/bs2ULPb9asmUt3Uouy7kynTp0A6N69O0OGDKFZs2Y8/vjjLF261OVrXMjT05NatWrlOFa3bl3AWVG5IHXr1s1zTZmLGYbhcjymaXL33Xfz0UcfMW/ePIYOHeryuSIiIiKFKSv9u4tnZFzKzItLcb6fd975vmBh/b6aNWsSEBBQ7PFMmTKF5557jueff54HH3yw2K8vIuWDkoQiUuZ99NFHjBo1ihdeeCHH8ePHj1O9evVCzy/p6SjVqlWjVatW/PHHH0U+97ysrCxOnDiRI1GYkJAAkCt5eLHinm58PkH4wQcfMGfOHG6//fZCzxEREREpirLSv7t4RkZRZ15cqoSEBOrXr5+9n1dfMC8lMd14ypQpTJ48mcmTJ/P444+7dI6IVExKEopImWcYRq4O2zfffENcXBzNmjUr9PySmG58oePHj7Nr164CpwS74uOPP85ekxDgk08+AaBPnz4Fnlec041N02Ts2LF88MEHvPPOO5dVjEVEREQkP2WlfxccHExwcHCh1yluH3/8cY4pvYsWLSIrK6vQfl9xTzd+9tlnmTx5Mk8++ST//e9/i+26IlI+KUkoImXeoEGDmDt3Lq1ataJ9+/Zs3bqVl156iQYNGrh0fsuWLYsljqSkJK699lr++c9/0rx5c6pUqcIff/zBzJkzSU9Pz9Wx6tOnD2vXrnXpLq63tzevvPIKKSkpdO3alY0bN/Lcc88xYMAArrzyygLPLc7O7cMPP8ycOXO46667aNeuHT///HP2Yz4+PoSHhxfL84iIiEjlVlb6dwVJTU1l+fLlANl9orVr13L8+HGqVq3KgAEDstuOHj2aefPmER0dTePGjQu99hdffIGnpyfXXnste/bs4amnnqJDhw4MHz68wPNq1apV6GhDV73yyis8/fTTREZGMnDgwBz9PnAuqyMilYuShCJS5s2cORMvLy+mTp1KSkoKnTp14osvvuDJJ58s1Th8fX3p0KEDs2fPJjY2lrS0NOrWrUufPn1YvHgxYWFhOdqnpKTkWm8mP15eXnz99dc8/PDDPPfcc1SpUoWxY8fy0ksvlcRLyddXX30FwPvvv8/777+f47HSWqNHREREKr6y0r8rSGJiIrfcckuOY5MnTwZy94tSUlKoUqWKS1OlwZkknDx5Mm+99RaGYTB48GBmzJiBt7d3MUVfuPP9vpUrV7Jy5cpcj19KdWQRKd8MU+98EZFil5ycTM2aNZkxYwYPPPCAu8MRERERkRJUt25dRo4cWeo3eEVEipPrpTxFRMRl69ato379+owdO9bdoYiIiIhICdqzZw+pqalMnDjR3aGIiFwWjSQUERERERERERGp5DSSUEREREREREREpJJTklBERERERERERKSSU5JQRERERERERESkklOSUEREREREREREpJLzdHcAxcXhcHDkyBGqVauGYRjuDkdERESkXDBNk+TkZIKDg7FYyvb9Y/X3RERERIrO1f5ehUkSHjlyhIYNG7o7DBEREZFyKTY2lgYNGrg7jAKpvyciIiJy6Qrr71WYJGG1atUA5wu2Wq1ujkZERESkfLDZbDRs2DC7L1WWqb8nIiIiUnSu9vcqTJLw/JQTq9WqTqOIiIhIEZWH6bvq74mIiIhcusL6e2V74RkREREREREREREpcUoSioiIiIiIiIiIVHJKEoqIiIiIiIiIiFRyFWZNQhERkYrObreTmZnp7jCknPHy8sLDw8PdYZQah8NBRkaGu8OQy1DZfmZFRETKCiUJRUREyjjTNElISOD06dPuDkXKqerVq1O3bt1yUZzkcmRkZBAdHY3D4XB3KHKZKsvPrIiISFmiJKGIiEgZdz5BGBgYiJ+fnz40i8tM0yQ1NZXExEQA6tWr5+aISo5pmsTHx+Ph4UHDhg2xWLSqTnlUmX5mRUREyholCYvKYYfDGyHlKPgHQUgEWDQdQkRESobdbs9OENaqVcvd4Ug5VKVKFQASExMJDAyssNM4s7KySE1NJTg4GD8/P3eHI5ehsvzMiohIJVZGc0tFusU6depUunbtSrVq1QgMDOSGG25g3759hZ63du1aOnfujK+vL02aNOHtt9/O1Wbx4sWEhYXh4+NDWFgYS5YsKUpopSNqGcxoC/MGweIxzq8z2jqPi4iIlIDzaxAq6SGX4/zPT0Ve09JutwPg7e3t5kikOFSGn1kREamkynBuqUhJwrVr1/LAAw/w888/s2rVKrKysujfvz9nzpzJ95zo6Giuv/56evXqxfbt23n88cd5+OGHWbx4cXabTZs2MWLECEaOHMnOnTsZOXIkw4cPZ/PmzZf+yopb1DJYNApsR3Iet8U7j5eBb6aIiFRcmmIsl6My/fxUptdaken7KCIiFVIZzy0Zpmmal3rysWPHCAwMZO3atfTu3TvPNhMnTmTZsmX8/vvv2cfuu+8+du7cyaZNmwAYMWIENpuNFStWZLeJjIykRo0aLFiwwKVYbDYbAQEBJCUlYbVaL/Ul5c1hd2Z1L/4mZjPAGgzjd5WJ4aEiIlJxpKWlER0dTWhoKL6+vu4OR8qpgn6OSrQPVcwKilXvlYpF308REalw3JhbcrW/d1krOiclJQFQs2bNfNts2rSJ/v375zh23XXXsWXLluzpA/m12bhxY77XTU9Px2az5dhKzOGNBXwTAUywxTnbiYiISIVz4sQJAgMDOXTokLtDyWXXrl00aNCgwJkdIqXB1ffJsGHDePXVV0snKBERkbKiHOSWLjlJaJomEyZM4Morr6Rt27b5tktISCAoKCjHsaCgILKysjh+/HiBbRISEvK97tSpUwkICMjeGjZseKkvpXApR4u3nYiISCVwqWsZA4wePbpMJeSmTp3K4MGDady4cb5t9u3bR9++fQkKCspeh/nJJ590aU21NWvWMHny5ELb9enTh/Hjx+c41q5dO7p168b//ve/Qs+Xsqciv0/WrFmDYRicPn06R7unn36a559/vmRv8ouIiJQ15SC3dMlJwgcffJDffvvNpenAF68pcn6G84XH82pT0FokkyZNIikpKXuLjY0tSvhF4x9UeJuitBMREakEirqW8cmTJ3njjTe4cCWUgwcP8tFHH5VWyHk6e/Ysc+bM4e677y6wnZeXF6NGjeK7775j3759zJgxg3fffZf//ve/+Z7z9ttvk5iYmL2fkZHBK6+8UuRiDXfeeSdvvfVWdvEOKT8q2/sEoH379jRu3JiPP/64FCITEREpI8pBbumSkoQPPfQQy5YtY/Xq1TRo0KDAtnXr1s01IjAxMRFPT09q1apVYJuLRxdeyMfHB6vVmmMrMSERznnh5Je0NMBa39lOREREAFi5ciWjR4+mTZs2dOjQgQ8++ICYmBi2bt2aZ3tfX1/i4uKIjIzkr7/+4u233+bOO++kefPm+T5HXFwcI0aMoEaNGtSqVYuhQ4dmj6zau3cvfn5+fPLJJ9ntv/jiC3x9fdm1axfgHIl1ww03MGXKFAIDA7Fardx7771kZGRkn7NixQo8PT3p0aNHga+3SZMm3HnnnXTo0IGQkBCGDBnCbbfdxvr16/M9p2HDhgwZMoQlS5awZ88errnmGjw8PLBYcnfRRo8ezdq1a5k5cyaGYWAYRvZrve666zhx4gRr164tMEYpeyrq++TQoUP07dsXgBo1amAYBqNHj85uP2TIEJfXHhcREakQQiJI96uLI9/KIO7PLXkWpbFpmjz00EMsWbKENWvWEBoaWug5PXr04Kuvvspx7LvvvqNLly54eXllt1m1ahWPPPJIjjYREWUk6WbxgMjpzkozGMDf31ETw5k6jJymoiUiIlIqTNPkbKZ7RoxV8fK45Kqjha1l7OfnxwsvvMDy5csZMmQIWVlZ/PDDD9n9hYulpqbSt29fevXqxbp16/D09OS5554jMjKS3377jVatWvHyyy9z//3307NnT7y8vBg7dizTpk2jXbt22df54Ycf8PX1ZfXq1Rw6dIg777yT2rVr8/zzzwOwbt06unTpUuTXe+DAAVauXMlNN92Ub5uBAwdy5ZVX0r17d2JiYtiwYQPh4eF5tp05cyZ//PEHbdu25ZlnngGgTp06AHh7e9OhQwfWr1/P1VdfXeRYKyK9T5zc9T5p2LAhixcv5uabb2bfvn1YrVaqVKmS/Xi3bt2YOnUq6enp+Pj4XNL/lYiISHny54mzvH72dl7mZUwuHoZ2bs/NuaUiJQkfeOABPvnkE5YuXUq1atWyR/8FBARk/9GfNGkScXFxzJ8/H3BWMn799deZMGECY8eOZdOmTcyZMyfHncNx48bRu3dvpk+fztChQ1m6dCnff/89GzZsKK7XefnChsDw+bByYo6FJjOr1sV74IvOx0VERErB2Uw7YU9/65bnjnrmOvy8i9R9AFxbyzgtLY0XXniBzZs306dPH7p06cI111zDSy+9RLdu3XK1//TTT7FYLLz33nvZCZkPPviA6tWrs2bNGvr378/999/P8uXLGTlyJN7e3nTu3Jlx48bluI63tzfvv/8+fn5+tGnThmeeeYZHH32UZ599FovFwqFDhwgODnb5tUZERLBt2zbS09O55557shN6eVm5ciVTpkyhf//+HDlyhIcffphhw4bx4IMP4uGRs4MYEBCAt7c3fn5+1K1bN9e16tevX6bWp3M3vU+c3PU+8fDwyE50BgYGUr169RzXq1+/Punp6SQkJBASElLk/ysREZHy5OSZDO6a+yuHznYiMPAJJpofQPIFRUyswc4EoZtzS0WabvzWW2+RlJREnz59qFevXva2cOHC7Dbx8fHExMRk74eGhrJ8+XLWrFlDx44defbZZ5k1axY333xzdpuIiAg+/fRTPvjgA9q3b8/cuXNZuHAhV1xxRTG8xGIUNgTG74Y7vmZO0BPcmvEkM9sudvs3UUREpKxzZS3j1NRUgoKCWLlyJQ0aNOC+++7j/fff548//siz/datWzlw4ADVqlXD398ff39/atasSVpaGgcPHsxu9/777/Pbb7+xbds25s6dm2uEV4cOHfDz88ve79GjBykpKdnrHZ89exZfX98c57Rp0yb7OQcMGJDjsYULF7Jt2zY++eQTvvnmG15++eV8X3N0dDRLly7lxhtvpE2bNvzwww9kZmbicDjyPSc/VapUITU1tcjn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8c9//tO9gYuIiJQXhzfmGkF4IYsB1dKPYsRsKsWgpCIpcpJwy5YthIeHEx4eDsCECRMIDw/n6aefBiA+Pj47YQjwzjvvkJWVxQMPPEC9evWyt3HjxmW3OX36NPfccw+tW7emf//+xMXFsW7dOrp163a5r6/Su7lTA5oF+nM6NZN31h50dzgiIiJSQRXWR/y///s/xo8fz/3330+XLl2Ii4vju+++o1q1au4MW0REpPxIOVq87UQuYpimmXucajlks9kICAggKSlJU48v8u2eBO79cCu+XhbWPtqXIKuvu0MSERGRMqI89aHKU6wiIiLFLno9zBtUeLs7vobQXiUfj5QbrvahSq1wibhP/7AgOjWqTlqmgxnf518MRkRERERERETKpsP+HThm1MaR71AvA6z1IUTr/cqlUZKwEjAMg8cGtAZg0ZZYDh5LcXNEIiIiIiIiIuKqb/ckMOiNTTyZfjsYYGaXKjnv3H7kNLB4lHp8UjEoSVhJdAutyTWtA7E7TF7+dp+7wxERERERERGRQmTZHbyw/Hfu/XAryWlZnGh4HUmD3sew1svZ0BoMw+dD2BD3BCoVgmpiVyKPXteKH/YmsmJ3AttjThHeqIa7QxIRERERERGRPCTa0njwk+38cugkAHdfGcrEAa3w8rBApxuc1Y5TjoJ/kHOKsUYQymXSSMJKpGXdatzcqQEA01bspYLUrBERERERERGpUDYePM71szbwy6GT+Pt48tZtnXhyUJgzQQjOhGBoL2g3zPlVCUIpBkoSVjKPXNsCb08Lm6NPsnpforvDEREREREREZFzHA6TN1Yf4Pb3NnM8JZ1Wdavx1UNXMqBdvcJPFrlMShJWMvWrV+HOiMYAPPfN72TaHe4NSERERERERERISs1k7PwtvPTtPhwmDOvcgCX39yS0dlV3hyaVhJKEldADVzejVlVv/jx2ho9/PuzucEREREREREQqtR2xpxn42np+2JuIt6eF6Te346Vh7anirWnEUnqUJKyErL5ePHJtCwD+9/1+TqdmuDkiERERERERkUrAYYfo9bDrc4hejyMri3fX/cmwtzby16mzNKrpxxf/imBE10YYhuHuaKWSUXXjSurWrg35cNNh9h1NZuYP+/nv4DbuDklERERERESk4opaBisngu1I9qHTHrXZcvZ2shzdGNiuHlNvbofV18uNQUplppGE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218Mef0nhr29iW/3HMU0oWrzXqT71cXMp4yis5BifefgBhERN9NIQqn4wobA8PnOBYMvWA/EsAaT1OdZEn+uS1LMaUbN+YXnb2zLiK6N3BisiIiIiIiUGQ67c13BlKPO0X4hEc6BCOccS07n482H+ejnGI6npAPg7Wnhxo71GdMrlBZB1SDqpXPVjQ1yzm46lziMnJbjmiIi7qIkoVQOYUOg1cBcf+ADLB4saGfn0c9/46udR5i4eBcHj51hYmQrPCz53e0TEREREZEKL2pZroEGWIMhcjq7A67i/Z+i+XpnPBl2BwBBVh9G9WjMP7o1ombVC+YY5zNowXmtac7HRUTKgEuabvzmm28SGhqKr68vnTt3Zv369fm2XbNmDYZh5Nr27t2bo93ixYsJCwvDx8eHsLAwlixZcimhieTP4gGhvaDdMOfXc3frfL08mHVrR8Zf0xyA2ev+5O55v5KUmunOaEVERERExF2iljlH/11Umdi0xWMuGslrb7zKF9viyLA76NiwOrP+Ec6GiVfzQN9mOROE54UNgfG74Y6v4eY5zq/jdylBKCJlSpGThAsXLmT8+PE88cQTbN++nV69ejFgwABiYmIKPG/fvn3Ex8dnb82bN89+bNOmTYwYMYKRI0eyc+dORo4cyfDhw9m8eXPRX5HIJTAMg/HXtGDmrR3x8bSwet8xhryxgb0JNneHJiIiIiIipclhd476y6PwoYGJacJ/vT5kaPsgltwfwZcP9GRIh2C8PAr5eJ3PoAURkbLCME0z92++AlxxxRV06tSJt956K/tY69atueGGG5g6dWqu9mvWrKFv376cOnWK6tWr53nNESNGYLPZWLFiRfaxyMhIatSowYIFC1yKy2azERAQQFJSElartSgvSSSH3XFJ3PvhVuJOn6WKlwcvDmvP4A7B7g5LRESkRJSnPlR5ilVEyrHo9TBvUOHt7vjamewTESnjXO1DFWkkYUZGBlu3bqV///45jvfv35+NGzcWeG54eDj16tWjX79+rF69OsdjmzZtynXN6667rtBripSEtvUD+OqhK7myWW3OZtp5aMF2nv8miqxza42IiIiIiEjFlJZp59fdUa41TjlassGIiJSyIiUJjx8/jt1uJygoKMfxoKAgEhIS8jynXr16zJ49m8WLF/PFF1/QsmVL+vXrx7p167LbJCQkFOmaAOnp6dhs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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -377,16 +373,16 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{Variable(0x7456bacb36d28b68, u, children=[], domain=[], auxiliary_domains={}): Multiplication(0x76b039596794144b, *, children=['-a', 'y[0:1]'], domain=[], auxiliary_domains={})}" + "{Variable(-0x5fac921fa1fcf102, u, children=[], domains={}): Multiplication(-0x539f7b6bea36b8da, *, children=['-a', 'y[0:1]'], domains={})}" ] }, - "execution_count": 12, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -408,7 +404,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -428,7 +424,7 @@ "parameter_values = pybamm.ParameterValues({\"a\": 4, \"b\": 3})\n", "parameters = {\"a\": a, \"b\": b, \"a + b\": a + b, \"a * b\": a * b}\n", "param_eval = parameter_values.print_parameters(parameters)\n", - "for name, (value,C_dependence) in param_eval.items():\n", + "for name, value in param_eval.items():\n", " print(\"{}: {}\".format(name, value))" ] }, @@ -450,7 +446,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -460,7 +456,7 @@ "[1] Joel A. E. Andersson, Joris Gillis, Greg Horn, James B. Rawlings, and Moritz Diehl. CasADi – A software framework for nonlinear optimization and optimal control. Mathematical Programming Computation, 11(1):1–36, 2019. doi:10.1007/s12532-018-0139-4.\n", "[2] Charles R. Harris, K. Jarrod Millman, Stéfan J. van der Walt, Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, Julian Taylor, Sebastian Berg, Nathaniel J. Smith, and others. Array programming with NumPy. Nature, 585(7825):357–362, 2020. doi:10.1038/s41586-020-2649-2.\n", "[3] Scott G. Marquis, Valentin Sulzer, Robert Timms, Colin P. Please, and S. Jon Chapman. An asymptotic derivation of a single particle model with electrolyte. Journal of The Electrochemical Society, 166(15):A3693–A3706, 2019. doi:10.1149/2.0341915jes.\n", - "[4] Valentin Sulzer, Scott G. Marquis, Robert Timms, Martin Robinson, and S. Jon Chapman. Python Battery Mathematical Modelling (PyBaMM). ECSarXiv. February, 2020. doi:10.1149/osf.io/67ckj.\n", + "[4] Valentin Sulzer, Scott G. Marquis, Robert Timms, Martin Robinson, and S. Jon Chapman. Python Battery Mathematical Modelling (PyBaMM). Journal of Open Research Software, 9(1):14, 2021. doi:10.5334/jors.309.\n", "[5] Pauli Virtanen, Ralf Gommers, Travis E. Oliphant, Matt Haberland, Tyler Reddy, David Cournapeau, Evgeni Burovski, Pearu Peterson, Warren Weckesser, Jonathan Bright, and others. SciPy 1.0: fundamental algorithms for scientific computing in Python. Nature Methods, 17(3):261–272, 2020. doi:10.1038/s41592-019-0686-2.\n", "\n" ] From c3b06769819819ab4b730ae7c921d5a0432308d9 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Mon, 10 Oct 2022 12:00:59 -0400 Subject: [PATCH 28/28] #2334 ferran and rob comments --- .../Creating Models/5-half-cell-model.ipynb | 1334 +++---- .../parameterization/parameterization.ipynb | 3482 ++++++++--------- pybamm/input/parameters/lithium_ion/Ai2020.py | 14 +- .../input/parameters/lithium_ion/Chen2020.py | 4 +- .../lithium_ion/Chen2020_composite.py | 6 +- .../input/parameters/lithium_ion/Ecker2015.py | 4 +- .../parameters/lithium_ion/Marquis2019.py | 4 +- .../parameters/lithium_ion/Mohtat2020.py | 5 +- .../input/parameters/lithium_ion/OKane2022.py | 4 +- .../input/parameters/lithium_ion/Prada2013.py | 4 +- .../parameters/lithium_ion/Ramadass2004.py | 4 +- pybamm/input/parameters/lithium_ion/Xu2019.py | 2 +- ...e_exchange_current_density_Dualfoil1998.py | 2 +- ...e_exchange_current_density_Dualfoil1998.py | 2 +- 14 files changed, 2435 insertions(+), 2436 deletions(-) diff --git a/examples/notebooks/Creating Models/5-half-cell-model.ipynb b/examples/notebooks/Creating Models/5-half-cell-model.ipynb index 3e38bd6132..64a7dec819 100644 --- a/examples/notebooks/Creating Models/5-half-cell-model.ipynb +++ b/examples/notebooks/Creating Models/5-half-cell-model.ipynb @@ -1,669 +1,669 @@ { - "cells": [ - { - "cell_type": "markdown", - "id": "professional-composer", - "metadata": {}, - "source": [ - "# A half cell model" - ] - }, - { - "cell_type": "markdown", - "id": "naval-management", - "metadata": {}, - "source": [ - "In the [previous notebook](./4-comparing-full-and-reduced-order-models.ipynb) we saw how to compare full and reduced-order models. Both of these models were posed on a single domain: the negative electrode particle. Here we will see how to create a model which contains multiple domains.\n", - "\n", - "We consider a problem posed on a half-cell geometry, which consists of a separator ($-L_s" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# plot\n", + "pybamm.dynamic_plot(\n", + " solution,\n", + " [\n", + " \"Positive electrode potential [V]\",\n", + " \"Electrolyte potential [V]\",\n", + " \"Positive electrode interfacial current density [A.m-2]\",\n", + " \"Positive particle surface concentration [mol.m-3]\",\n", + " \"Average positive particle surface concentration [mol.m-3]\",\n", + " [\"Positive electrode OCP [V]\", \"Terminal voltage [V]\"],\n", + " ],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "abandoned-shirt", + "metadata": {}, + "source": [ + "In the [next notebook](./6-a-simple-SEI-model.ipynb) we consider a simple model for SEI growth, and show how to correctly pose the model in non-dimensional form and then create and solve it using pybamm." + ] + }, + { + "cell_type": "markdown", + "id": "independent-development", + "metadata": {}, + "source": [ + "## References\n", + "\n", + "The relevant papers for this notebook are:" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "laden-replica", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1] Joel A. E. Andersson, Joris Gillis, Greg Horn, James B. Rawlings, and Moritz Diehl. CasADi – A software framework for nonlinear optimization and optimal control. Mathematical Programming Computation, 11(1):1–36, 2019. doi:10.1007/s12532-018-0139-4.\n", + "[2] Charles R. Harris, K. Jarrod Millman, Stéfan J. van der Walt, Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, Julian Taylor, Sebastian Berg, Nathaniel J. Smith, and others. Array programming with NumPy. Nature, 585(7825):357–362, 2020. doi:10.1038/s41586-020-2649-2.\n", + "[3] Valentin Sulzer, Scott G. Marquis, Robert Timms, Martin Robinson, and S. Jon Chapman. Python Battery Mathematical Modelling (PyBaMM). Journal of Open Research Software, 9(1):14, 2021. doi:10.5334/jors.309.\n", + "\n" + ] + } + ], + "source": [ + "pybamm.print_citations()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "happy-halifax", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.0" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": true + } }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "1d57bc29107d47838633a27df1b920cc", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "interactive(children=(FloatSlider(value=0.0, description='t', max=1.0, step=0.01), Output()), _dom_classes=('w…" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# plot\n", - "pybamm.dynamic_plot(\n", - " solution,\n", - " [\n", - " \"Positive electrode potential [V]\",\n", - " \"Electrolyte potential [V]\",\n", - " \"Positive electrode interfacial current density [A.m-2]\",\n", - " \"Positive particle surface concentration [mol.m-3]\",\n", - " \"Average positive particle surface concentration [mol.m-3]\",\n", - " [\"Positive electrode OCP [V]\", \"Terminal voltage [V]\"],\n", - " ],\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "abandoned-shirt", - "metadata": {}, - "source": [ - "In the [next notebook](./6-a-simple-SEI-model.ipynb) we consider a simple model for SEI growth, and show how to correctly pose the model in non-dimensional form and then create and solve it using pybamm." - ] - }, - { - "cell_type": "markdown", - "id": "independent-development", - "metadata": {}, - "source": [ - "## References\n", - "\n", - "The relevant papers for this notebook are:" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "id": "laden-replica", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1] Joel A. E. Andersson, Joris Gillis, Greg Horn, James B. Rawlings, and Moritz Diehl. CasADi – A software framework for nonlinear optimization and optimal control. Mathematical Programming Computation, 11(1):1–36, 2019. doi:10.1007/s12532-018-0139-4.\n", - "[2] Charles R. Harris, K. Jarrod Millman, Stéfan J. van der Walt, Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, Julian Taylor, Sebastian Berg, Nathaniel J. Smith, and others. Array programming with NumPy. Nature, 585(7825):357–362, 2020. doi:10.1038/s41586-020-2649-2.\n", - "[3] Valentin Sulzer, Scott G. Marquis, Robert Timms, Martin Robinson, and S. Jon Chapman. Python Battery Mathematical Modelling (PyBaMM). Journal of Open Research Software, 9(1):14, 2021. doi:10.5334/jors.309.\n", - "\n" - ] - } - ], - "source": [ - "pybamm.print_citations()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "happy-halifax", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.0" - }, - "toc": { - "base_numbering": 1, - "nav_menu": {}, - "number_sections": true, - "sideBar": true, - "skip_h1_title": false, - "title_cell": "Table of Contents", - "title_sidebar": "Contents", - "toc_cell": false, - "toc_position": {}, - "toc_section_display": true, - "toc_window_display": true - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/examples/notebooks/parameterization/parameterization.ipynb b/examples/notebooks/parameterization/parameterization.ipynb index 87b1bc8d54..08efbe12e5 100644 --- a/examples/notebooks/parameterization/parameterization.ipynb +++ b/examples/notebooks/parameterization/parameterization.ipynb @@ -1,1743 +1,1743 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Parameterisation\n", - "\n", - "In this notebook, we show how to find which parameters are needed in a model and define them.\n", - "\n", - "For other notebooks about parameterization, see:\n", - "\n", - "- The API documentation of [Parameters](https://pybamm.readthedocs.io/en/latest/source/parameters/index.html) can be found at [pybamm.readthedocs.io](https://pybamm.readthedocs.io/)\n", - "- [Setting parameter values](https://github.com/pybamm-team/PyBaMM/blob/develop/examples/notebooks/Getting%20Started/Tutorial%204%20-%20Setting%20parameter%20values.ipynb) can be found at `pybamm/examples/notebooks/Getting Started/Tutorial 4 - Setting parameter values.ipynb`. This explains the basics of how to set the parameters of a model (in less detail than here).\n", - "- [parameter-management.ipynb](https://github.com/pybamm-team/PyBaMM/blob/develop/examples/notebooks/parameterization/parameter-management.ipynb) can be found at `pybamm/examples/notebooks/parameterization/parameter-management.ipynb`. This explains how to add and edit parameters in the `pybamm/input` directories\n", - "- [parameter-values.ipynb](https://github.com/pybamm-team/PyBaMM/blob/develop/examples/notebooks/parameterization/parameter-values.ipynb) can be found at `pybamm/examples/notebooks/parameterization/parameter-values.ipynb`. This explains the basics of the `ParameterValues` class.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Adding your own parameter sets (using a dictionary)\n", - "\n", - "We will be using the model defined and explained in more detail in [3-negative-particle-problem.ipynb](https://github.com/pybamm-team/PyBaMM/blob/develop/examples/notebooks/Creating%20Models/3-negative-particle-problem.ipynb) example notebook. We begin by importing the required libraries" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Note: you may need to restart the kernel to use updated packages.\n" - ] - } - ], - "source": [ - "%pip install pybamm -q # install PyBaMM if it is not installed\n", - "import pybamm\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Setting up the model\n", - "\n", - "We define all the parameters and variables using `pybamm.Parameter` and `pybamm.Variable` respectively." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "c = pybamm.Variable(\"Concentration [mol.m-3]\", domain=\"negative particle\")\n", - "\n", - "R = pybamm.Parameter(\"Particle radius [m]\")\n", - "D = pybamm.FunctionParameter(\"Diffusion coefficient [m2.s-1]\", {\"Concentration [mol.m-3]\": c})\n", - "j = pybamm.InputParameter(\"Interfacial current density [A.m-2]\")\n", - "c0 = pybamm.Parameter(\"Initial concentration [mol.m-3]\")\n", - "c_e = pybamm.Parameter(\"Electrolyte concentration [mol.m-3]\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we define our model equations, boundary and initial conditions. We also add the variables required using the dictionary `model.variables`" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "model = pybamm.BaseModel()\n", - "\n", - "# governing equations\n", - "N = -D * pybamm.grad(c) # flux\n", - "dcdt = -pybamm.div(N)\n", - "model.rhs = {c: dcdt} \n", - "\n", - "# boundary conditions \n", - "lbc = pybamm.Scalar(0)\n", - "rbc = -j\n", - "model.boundary_conditions = {c: {\"left\": (lbc, \"Neumann\"), \"right\": (rbc, \"Neumann\")}}\n", - "\n", - "# initial conditions \n", - "model.initial_conditions = {c: c0}\n", - "\n", - "model.variables = {\n", - " \"Concentration [mol.m-3]\": c,\n", - " \"Surface concentration [mol.m-3]\": pybamm.surf(c),\n", - " \"Flux [mol.m-2.s-1]\": N,\n", - "}\n", - "\n", - "model.length_scales = {\"negative particle\": pybamm.Scalar(1)}" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We also define the geometry, since there are parameters in the geometry too" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "r = pybamm.SpatialVariable(\"r\", domain=[\"negative particle\"], coord_sys=\"spherical polar\")\n", - "geometry = pybamm.Geometry({\"negative particle\": {r: {\"min\": pybamm.Scalar(0), \"max\": R}}})" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Finding the parameters required" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To know what parameters are required by the model and geometry, we can do" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Initial concentration [mol.m-3] (Parameter)\n", - "Interfacial current density [A.m-2] (InputParameter)\n", - "Diffusion coefficient [m2.s-1] (FunctionParameter with input(s) 'Concentration [mol.m-3]')\n", - "\n", - "Particle radius [m] (Parameter)\n" - ] - } - ], - "source": [ - "model.print_parameter_info()\n", - "geometry.print_parameter_info()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This tells us that we need to provide parameter values for the initial concentration and Faraday constant, an `InputParameter` at solve time for the interfacial current density, and diffusivity as a function of concentration. Since the electrolyte concentration does not appear anywhere in the model, there is no need to provide a value for it." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Adding the parameters\n", - "\n", - "Now we can proceed to the step where we add the `parameter` values using a dictionary. We set up a dictionary with parameter names as the dictionary keys and their respective values as the dictionary values." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "def D_fun(c):\n", - " return 3.9 #* pybamm.exp(-c)\n", - "\n", - "values = {\n", - " \"Particle radius [m]\": 2,\n", - " \"Diffusion coefficient [m2.s-1]\": D_fun,\n", - " \"Initial concentration [mol.m-3]\": 2.5,\n", - "}" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can pass this dictionary in `pybamm.ParameterValues` class which accepts a dictionary of parameter names and values. We can then print `param` to check if it was initialised." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'Diffusion coefficient [m2.s-1]': ,\n", - " 'Initial concentration [mol.m-3]': 2.5,\n", - " 'Particle radius [m]': 2}" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "param = pybamm.ParameterValues(values)\n", - "\n", - "param" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Updating the parameter values\n", - "\n", - "The parameter values or `param` can be further updated by using the `update` function of `ParameterValues` class. The `update` function takes a dictionary with keys being the parameters to be updated and their respective values being the updated values. Here we update the `\"Particle radius [m]\"` parameter's value. Additionally, a function can also be passed as a `parameter`'s value which we will see ahead, and a new `parameter` can also be added by passing `check_already_exists=False` in the `update` function." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'Diffusion coefficient [m2.s-1]': ,\n", - " 'Initial concentration [mol.m-3]': 1.5,\n", - " 'Particle radius [m]': 2}" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "param.update({\"Initial concentration [mol.m-3]\": 1.5})\n", - "param" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Solving the model " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Finding the parameters in a model\n", - "\n", - "The `parameter` function of the `BaseModel` class can be used to obtain the parameters of a model." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/plain": [ - "[FunctionParameter(-0x3c6644568af7f737, Diffusion coefficient [m2.s-1], children=['Concentration [mol.m-3]'], domains={'primary': ['negative particle']}),\n", - " Parameter(-0x20b800b0346146aa, Initial concentration [mol.m-3], children=[], domains={}),\n", - " InputParameter(-0x3fa3c2033279cec1, Interfacial current density [A.m-2], children=[], domains={})]" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "parameters = model.parameters\n", - "parameters" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As explained in the [3-negative-particle-problem.ipynb](https://github.com/pybamm-team/PyBaMM/blob/develop/examples/notebooks/Creating%20Models/3-negative-particle-problem.ipynb) example, we first process both the `model` and the `geometry`." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "param.process_model(model)\n", - "param.process_geometry(geometry)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can now set up our mesh, choose a spatial method, and discretise our model" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "submesh_types = {\"negative particle\": pybamm.Uniform1DSubMesh}\n", - "var_pts = {r: 20}\n", - "mesh = pybamm.Mesh(geometry, submesh_types, var_pts)\n", - "\n", - "spatial_methods = {\"negative particle\": pybamm.FiniteVolume()}\n", - "disc = pybamm.Discretisation(mesh, spatial_methods)\n", - "disc.process_model(model);" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We choose a solver and times at which we want the solution returned, and solve the model. Here we give a value for the current density `j`." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# solve\n", - "solver = pybamm.ScipySolver()\n", - "t = np.linspace(0, 3600, 600)\n", - "solution = solver.solve(model, t, inputs={\"Interfacial current density [A.m-2]\": 1.4})\n", - "\n", - "# post-process, so that the solution can be called at any time t or space r\n", - "# (using interpolation)\n", - "c = solution[\"Concentration [mol.m-3]\"]\n", - "c_surf = solution[\"Surface concentration [mol.m-3]\"]\n", - "\n", - "# plot\n", - "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(13, 4))\n", - "\n", - "ax1.plot(solution.t, c_surf(solution.t))\n", - "ax1.set_xlabel(\"Time [s]\")\n", - "ax1.set_ylabel(\"Surface concentration [mol.m-3]\")\n", - "\n", - "rsol = mesh[\"negative particle\"].nodes # radial position\n", - "time = 1000 # time in seconds\n", - "ax2.plot(rsol * 1e6, c(t=time, r=rsol), label=\"t={}[s]\".format(time))\n", - "ax2.set_xlabel(\"Particle radius [microns]\")\n", - "ax2.set_ylabel(\"Concentration [mol.m-3]\")\n", - "ax2.legend()\n", - "\n", - "plt.tight_layout()\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Using pre-defined models in `PyBaMM`\n", - "\n", - "In the next few steps, we will be showing the same workflow with the Single Particle Model (`SPM`). We will also see how you can pass a function as a `parameter`'s value and how to plot such `parameter functions`.\n", - "\n", - "We start by initializing our model" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "spm = pybamm.lithium_ion.SPM()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Finding the parameters in a model\n", - "\n", - "We can print the `parameters` of a model by using the `get_parameters_info` function." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Maximum concentration in positive electrode [mol.m-3] (Parameter)\n", - "Negative electrode Bruggeman coefficient (electrolyte) (Parameter)\n", - "Negative electrode thickness [m] (Parameter)\n", - "Positive electrode Bruggeman coefficient (electrode) (Parameter)\n", - "Positive electrode electrons in reaction (Parameter)\n", - "Initial temperature [K] (Parameter)\n", - "Typical current [A] (Parameter)\n", - "Number of electrodes connected in parallel to make a cell (Parameter)\n", - "Electrode width [m] (Parameter)\n", - "Lower voltage cut-off [V] (Parameter)\n", - "Upper voltage cut-off [V] (Parameter)\n", - "Maximum concentration in negative electrode [mol.m-3] (Parameter)\n", - "Nominal cell capacity [A.h] (Parameter)\n", - "Separator thickness [m] (Parameter)\n", - "Negative electrode Bruggeman coefficient (electrode) (Parameter)\n", - "Positive electrode Bruggeman coefficient (electrolyte) (Parameter)\n", - "Number of cells connected in series to make a battery (Parameter)\n", - "Typical electrolyte concentration [mol.m-3] (Parameter)\n", - "Separator Bruggeman coefficient (electrolyte) (Parameter)\n", - "Electrode height [m] (Parameter)\n", - "Positive electrode thickness [m] (Parameter)\n", - "Negative electrode electrons in reaction (Parameter)\n", - "Reference temperature [K] (Parameter)\n", - "Positive electrode OCP entropic change [V.K-1] (FunctionParameter with input(s) 'Positive particle stoichiometry', 'Positive particle maximum concentration [mol.m-3]')\n", - "Positive particle radius [m] (FunctionParameter with input(s) 'Through-cell distance (x) [m]')\n", - "Initial concentration in negative electrode [mol.m-3] (FunctionParameter with input(s) 'Radial distance (r) [m]', 'Through-cell distance (x) [m]')\n", - "Positive electrode OCP [V] (FunctionParameter with input(s) 'Positive particle stoichiometry')\n", - "Positive electrode diffusivity [m2.s-1] (FunctionParameter with input(s) 'Positive particle stoichiometry', 'Temperature [K]')\n", - "Negative electrode OCP [V] (FunctionParameter with input(s) 'Negative particle stoichiometry')\n", - "Negative electrode OCP entropic change [V.K-1] (FunctionParameter with input(s) 'Negative particle stoichiometry', 'Negative particle maximum concentration [mol.m-3]')\n", - "Negative electrode exchange-current density [A.m-2] (FunctionParameter with input(s) 'Electrolyte concentration [mol.m-3]', 'Negative particle surface concentration [mol.m-3]', 'Negative particle maximum concentration [mol.m-3]', 'Temperature [K]')\n", - "Negative electrode diffusivity [m2.s-1] (FunctionParameter with input(s) 'Negative particle stoichiometry', 'Temperature [K]')\n", - "Initial concentration in positive electrode [mol.m-3] (FunctionParameter with input(s) 'Radial distance (r) [m]', 'Through-cell distance (x) [m]')\n", - "Positive electrode exchange-current density [A.m-2] (FunctionParameter with input(s) 'Electrolyte concentration [mol.m-3]', 'Positive particle surface concentration [mol.m-3]', 'Positive particle maximum concentration [mol.m-3]', 'Temperature [K]')\n", - "Negative electrode active material volume fraction (FunctionParameter with input(s) 'Through-cell distance (x) [m]')\n", - "Separator porosity (FunctionParameter with input(s) 'Through-cell distance (x) [m]')\n", - "Current function [A] (FunctionParameter with input(s) 'Time [s]')\n", - "Negative electrode porosity (FunctionParameter with input(s) 'Through-cell distance (x) [m]')\n", - "Positive electrode active material volume fraction (FunctionParameter with input(s) 'Through-cell distance (x) [m]')\n", - "Ambient temperature [K] (FunctionParameter with input(s) 'Time [s]')\n", - "Positive electrode porosity (FunctionParameter with input(s) 'Through-cell distance (x) [m]')\n", - "Negative particle radius [m] (FunctionParameter with input(s) 'Through-cell distance (x) [m]')\n", - "\n" - ] - } - ], - "source": [ - "spm.print_parameter_info()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note that there are no `InputParameter` objects in the default SPM. Also, note that if a `FunctionParameter` is expected, it is ok to provide a scalar (parameter) instead. However, if a `Parameter` is expected, you cannot provide a function instead." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Another way to view what parameters are needed is to print the default parameter values. This can also be used to get some good defaults (but care must be taken when combining parameters across datasets and chemistries)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/plain": [ - "{'Negative electrode thickness [m]': 0.0001,\n", - " 'Separator thickness [m]': 2.5e-05,\n", - " 'Positive electrode thickness [m]': 0.0001,\n", - " 'Electrode height [m]': 0.137,\n", - " 'Electrode width [m]': 0.207,\n", - " 'Nominal cell capacity [A.h]': 0.680616,\n", - " 'Typical current [A]': 0.680616,\n", - " 'Current function [A]': 0.680616,\n", - " 'Maximum concentration in negative electrode [mol.m-3]': 24983.2619938437,\n", - " 'Negative electrode diffusivity [m2.s-1]': ,\n", - " 'Negative electrode OCP [V]': ,\n", - " 'Negative electrode porosity': 0.3,\n", - " 'Negative electrode active material volume fraction': 0.6,\n", - " 'Negative particle radius [m]': 1e-05,\n", - " 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5,\n", - " 'Negative electrode Bruggeman coefficient (electrode)': 1.5,\n", - " 'Negative electrode electrons in reaction': 1.0,\n", - " 'Negative electrode exchange-current density [A.m-2]': ,\n", - " 'Negative electrode OCP entropic change [V.K-1]': ,\n", - " 'Maximum concentration in positive electrode [mol.m-3]': 51217.9257309275,\n", - " 'Positive electrode diffusivity [m2.s-1]': ,\n", - " 'Positive electrode OCP [V]': ,\n", - " 'Positive electrode porosity': 0.3,\n", - " 'Positive electrode active material volume fraction': 0.5,\n", - " 'Positive particle radius [m]': 1e-05,\n", - " 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5,\n", - " 'Positive electrode Bruggeman coefficient (electrode)': 1.5,\n", - " 'Positive electrode electrons in reaction': 1.0,\n", - " 'Positive electrode exchange-current density [A.m-2]': ,\n", - " 'Positive electrode OCP entropic change [V.K-1]': ,\n", - " 'Separator porosity': 1.0,\n", - " 'Separator Bruggeman coefficient (electrolyte)': 1.5,\n", - " 'Typical electrolyte concentration [mol.m-3]': 1000.0,\n", - " 'Reference temperature [K]': 298.15,\n", - " 'Ambient temperature [K]': 298.15,\n", - " 'Number of electrodes connected in parallel to make a cell': 1.0,\n", - " 'Number of cells connected in series to make a battery': 1.0,\n", - " 'Lower voltage cut-off [V]': 3.105,\n", - " 'Upper voltage cut-off [V]': 4.1,\n", - " 'Initial concentration in negative electrode [mol.m-3]': 19986.609595075,\n", - " 'Initial concentration in positive electrode [mol.m-3]': 30730.7554385565,\n", - " 'Initial temperature [K]': 298.15}" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "{k: v for k,v in spm.default_parameter_values.items() if k in spm._parameter_info}" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We now define a dictionary of values for `ParameterValues` as before (here, a subset of the `Chen2020` parameters)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'Ambient temperature [K]': 298.15,\n", - " 'Current function [A]': 5.0,\n", - " 'Electrode height [m]': 0.065,\n", - " 'Electrode width [m]': 1.58,\n", - " 'Initial concentration in negative electrode [mol.m-3]': 29866.0,\n", - " 'Initial concentration in positive electrode [mol.m-3]': 17038.0,\n", - " 'Initial temperature [K]': 298.15,\n", - " 'Lower voltage cut-off [V]': 2.5,\n", - " 'Maximum concentration in negative electrode [mol.m-3]': 33133.0,\n", - " 'Maximum concentration in positive electrode [mol.m-3]': 63104.0,\n", - " 'Negative electrode Bruggeman coefficient (electrode)': 1.5,\n", - " 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5,\n", - " 'Negative electrode OCP [V]': ('graphite_LGM50_ocp_Chen2020',\n", - " ([array([0. , 0.03129623, 0.03499902, 0.0387018 , 0.04240458,\n", - " 0.04610736, 0.04981015, 0.05351292, 0.05721568, 0.06091845,\n", - " 0.06462122, 0.06832399, 0.07202675, 0.07572951, 0.07943227,\n", - " 0.08313503, 0.08683779, 0.09054054, 0.09424331, 0.09794607,\n", - " 0.10164883, 0.10535158, 0.10905434, 0.1127571 , 0.11645985,\n", - " 0.12016261, 0.12386536, 0.12756811, 0.13127086, 0.13497362,\n", - " 0.13867638, 0.14237913, 0.14608189, 0.14978465, 0.15348741,\n", - " 0.15719018, 0.16089294, 0.1645957 , 0.16829847, 0.17200122,\n", - " 0.17570399, 0.17940674, 0.1831095 , 0.18681229, 0.19051504,\n", - " 0.1942178 , 0.19792056, 0.20162334, 0.2053261 , 0.20902886,\n", - " 0.21273164, 0.2164344 , 0.22013716, 0.22383993, 0.2275427 ,\n", - " 0.23124547, 0.23494825, 0.23865101, 0.24235377, 0.24605653,\n", - " 0.2497593 , 0.25346208, 0.25716486, 0.26086762, 0.26457039,\n", - " 0.26827314, 0.2719759 , 0.27567867, 0.27938144, 0.28308421,\n", - " 0.28678698, 0.29048974, 0.29419251, 0.29789529, 0.30159806,\n", - " 0.30530083, 0.30900361, 0.31270637, 0.31640913, 0.32011189,\n", - " 0.32381466, 0.32751744, 0.33122021, 0.33492297, 0.33862575,\n", - " 0.34232853, 0.34603131, 0.34973408, 0.35343685, 0.35713963,\n", - " 0.36084241, 0.36454517, 0.36824795, 0.37195071, 0.37565348,\n", - " 0.37935626, 0.38305904, 0.38676182, 0.3904646 , 0.39416737,\n", - " 0.39787015, 0.40157291, 0.40527567, 0.40897844, 0.41268121,\n", - " 0.41638398, 0.42008676, 0.42378953, 0.4274923 , 0.43119506,\n", - " 0.43489784, 0.43860061, 0.44230338, 0.44600615, 0.44970893,\n", - " 0.45341168, 0.45711444, 0.46081719, 0.46451994, 0.46822269,\n", - " 0.47192545, 0.47562821, 0.47933098, 0.48303375, 0.48673651,\n", - " 0.49043926, 0.49414203, 0.49784482, 0.50154759, 0.50525036,\n", - " 0.50895311, 0.51265586, 0.51635861, 0.52006139, 0.52376415,\n", - " 0.52746692, 0.53116969, 0.53487245, 0.53857521, 0.54227797,\n", - " 0.54598074, 0.5496835 , 0.55338627, 0.55708902, 0.56079178,\n", - " 0.56449454, 0.5681973 , 0.57190006, 0.57560282, 0.57930558,\n", - " 0.58300835, 0.58671112, 0.59041389, 0.59411664, 0.59781941,\n", - " 0.60152218, 0.60522496, 0.60892772, 0.61263048, 0.61633325,\n", - " 0.62003603, 0.6237388 , 0.62744156, 0.63114433, 0.63484711,\n", - " 0.63854988, 0.64225265, 0.64595543, 0.64965823, 0.653361 ,\n", - " 0.65706377, 0.66076656, 0.66446934, 0.66817212, 0.67187489,\n", - " 0.67557767, 0.67928044, 0.68298322, 0.686686 , 0.69038878,\n", - " 0.69409156, 0.69779433, 0.70149709, 0.70519988, 0.70890264,\n", - " 0.7126054 , 0.71630818, 0.72001095, 0.72371371, 0.72741648,\n", - " 0.73111925, 0.73482204, 0.7385248 , 0.74222757, 0.74593034,\n", - " 0.74963312, 0.75333589, 0.75703868, 0.76074146, 0.76444422,\n", - " 0.76814698, 0.77184976, 0.77555253, 0.77925531, 0.78295807,\n", - " 0.78666085, 0.79036364, 0.79406641, 0.79776918, 0.80147197,\n", - " 0.80517474, 0.80887751, 0.81258028, 0.81628304, 0.81998581,\n", - " 0.82368858, 0.82739136, 0.83109411, 0.83479688, 0.83849965,\n", - " 0.84220242, 0.84590519, 0.84960797, 0.85331075, 0.85701353,\n", - " 0.86071631, 0.86441907, 0.86812186, 0.87182464, 0.87552742,\n", - " 0.87923019, 0.88293296, 0.88663573, 0.89033849, 0.89404126,\n", - " 0.89774404, 0.9014468 , 1. ])],\n", - " array([1.81772748, 1.0828807 , 0.99593794, 0.90023398, 0.79649431,\n", - " 0.73354429, 0.66664314, 0.64137149, 0.59813869, 0.5670836 ,\n", - " 0.54746181, 0.53068399, 0.51304734, 0.49394092, 0.47926274,\n", - " 0.46065259, 0.45992726, 0.43801501, 0.42438665, 0.41150269,\n", - " 0.40033659, 0.38957134, 0.37756538, 0.36292541, 0.34357086,\n", - " 0.3406314 , 0.32299468, 0.31379458, 0.30795386, 0.29207319,\n", - " 0.28697687, 0.27405477, 0.2670497 , 0.25857493, 0.25265783,\n", - " 0.24826777, 0.2414345 , 0.23362778, 0.22956218, 0.22370236,\n", - " 0.22181271, 0.22089651, 0.2194268 , 0.21830064, 0.21845333,\n", - " 0.21753715, 0.21719357, 0.21635373, 0.21667822, 0.21738444,\n", - " 0.21469313, 0.21541846, 0.21465495, 0.2135479 , 0.21392964,\n", - " 0.21074206, 0.20873788, 0.20465319, 0.20205732, 0.19774358,\n", - " 0.19444147, 0.19190285, 0.18850531, 0.18581399, 0.18327537,\n", - " 0.18157659, 0.17814088, 0.17529686, 0.1719375 , 0.16934161,\n", - " 0.16756649, 0.16609676, 0.16414985, 0.16260378, 0.16224113,\n", - " 0.160027 , 0.15827096, 0.1588054 , 0.15552238, 0.15580869,\n", - " 0.15220118, 0.1511132 , 0.14987253, 0.14874637, 0.14678037,\n", - " 0.14620776, 0.14555879, 0.14389819, 0.14359279, 0.14242846,\n", - " 0.14038612, 0.13882096, 0.13954628, 0.13946992, 0.13780934,\n", - " 0.13973714, 0.13698858, 0.13523254, 0.13441178, 0.1352898 ,\n", - " 0.13507985, 0.13647321, 0.13601512, 0.13435452, 0.1334765 ,\n", - " 0.1348317 , 0.13275118, 0.13286571, 0.13263667, 0.13456447,\n", - " 0.13471718, 0.13395369, 0.13448814, 0.1334765 , 0.13298023,\n", - " 0.13259849, 0.13338107, 0.13309476, 0.13275118, 0.13443087,\n", - " 0.13315202, 0.132713 , 0.1330184 , 0.13278936, 0.13225491,\n", - " 0.13317111, 0.13263667, 0.13187316, 0.13265574, 0.13250305,\n", - " 0.13324745, 0.13204496, 0.13242669, 0.13233127, 0.13198769,\n", - " 0.13254122, 0.13145325, 0.13298023, 0.13168229, 0.1313578 ,\n", - " 0.13235036, 0.13120511, 0.13089971, 0.13109058, 0.13082336,\n", - " 0.13011713, 0.129869 , 0.12992626, 0.12942998, 0.12796026,\n", - " 0.12862831, 0.12656689, 0.12734947, 0.12509716, 0.12110791,\n", - " 0.11839751, 0.11244226, 0.11307214, 0.1092165 , 0.10683058,\n", - " 0.10433014, 0.10530359, 0.10056993, 0.09950104, 0.09854668,\n", - " 0.09921473, 0.09541635, 0.09980643, 0.0986612 , 0.09560722,\n", - " 0.09755413, 0.09612258, 0.09430929, 0.09661885, 0.09366032,\n", - " 0.09522548, 0.09535909, 0.09316404, 0.09450016, 0.0930877 ,\n", - " 0.09343126, 0.0932404 , 0.09350762, 0.09339309, 0.09291591,\n", - " 0.09303043, 0.0926296 , 0.0932404 , 0.09261052, 0.09249599,\n", - " 0.09240055, 0.09253416, 0.09209515, 0.09234329, 0.09366032,\n", - " 0.09333583, 0.09322131, 0.09264868, 0.09253416, 0.09243873,\n", - " 0.09230512, 0.09310678, 0.09165615, 0.09159888, 0.09207606,\n", - " 0.09175158, 0.09177067, 0.09236237, 0.09241964, 0.09320222,\n", - " 0.09199972, 0.09167523, 0.09322131, 0.09190428, 0.09167523,\n", - " 0.09285865, 0.09180884, 0.09150345, 0.09186611, 0.0920188 ,\n", - " 0.09320222, 0.09131257, 0.09117896, 0.09133166, 0.09089265,\n", - " 0.09058725, 0.09051091, 0.09033912, 0.09041547, 0.0911217 ,\n", - " 0.0894611 , 0.08999555, 0.08921297, 0.08881213, 0.08797229,\n", - " 0.08709427, 0.08503284, 0.07601531]))),\n", - " 'Negative electrode OCP entropic change [V.K-1]': 0.0,\n", - " 'Negative electrode active material volume fraction': 0.75,\n", - " 'Negative electrode diffusivity [m2.s-1]': 3.3e-14,\n", - " 'Negative electrode electrons in reaction': 1.0,\n", - " 'Negative electrode exchange-current density [A.m-2]': ,\n", - " 'Negative electrode porosity': 0.25,\n", - " 'Negative electrode thickness [m]': 8.52e-05,\n", - " 'Negative particle radius [m]': 5.86e-06,\n", - " 'Nominal cell capacity [A.h]': 5.0,\n", - " 'Number of cells connected in series to make a battery': 1.0,\n", - " 'Number of electrodes connected in parallel to make a cell': 1.0,\n", - " 'Positive electrode Bruggeman coefficient (electrode)': 1.5,\n", - " 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5,\n", - " 'Positive electrode OCP [V]': ('nmc_LGM50_ocp_Chen2020',\n", - " ([array([0.24879728, 0.26614516, 0.26886763, 0.27159011, 0.27431258,\n", - " 0.27703505, 0.27975753, 0.28248 , 0.28520247, 0.28792495,\n", - " 0.29064743, 0.29336992, 0.29609239, 0.29881487, 0.30153735,\n", - " 0.30425983, 0.30698231, 0.30970478, 0.31242725, 0.31514973,\n", - " 0.3178722 , 0.32059466, 0.32331714, 0.32603962, 0.32876209,\n", - " 0.33148456, 0.33420703, 0.3369295 , 0.33965197, 0.34237446,\n", - " 0.34509694, 0.34781941, 0.3505419 , 0.35326438, 0.35598685,\n", - " 0.35870932, 0.3614318 , 0.36415428, 0.36687674, 0.36959921,\n", - " 0.37232169, 0.37504418, 0.37776665, 0.38048913, 0.38321161,\n", - " 0.38593408, 0.38865655, 0.39137903, 0.39410151, 0.39682398,\n", - " 0.39954645, 0.40226892, 0.4049914 , 0.40771387, 0.41043634,\n", - " 0.41315882, 0.41588129, 0.41860377, 0.42132624, 0.42404872,\n", - " 0.4267712 , 0.42949368, 0.43221616, 0.43493864, 0.43766111,\n", - " 0.44038359, 0.44310607, 0.44582856, 0.44855103, 0.45127351,\n", - " 0.453996 , 0.45671848, 0.45944095, 0.46216343, 0.46488592,\n", - " 0.46760838, 0.47033085, 0.47305333, 0.47577581, 0.47849828,\n", - " 0.48122074, 0.48394321, 0.48666569, 0.48938816, 0.49211064,\n", - " 0.4948331 , 0.49755557, 0.50027804, 0.50300052, 0.50572298,\n", - " 0.50844545, 0.51116792, 0.51389038, 0.51661284, 0.51933531,\n", - " 0.52205777, 0.52478024, 0.52750271, 0.53022518, 0.53294765,\n", - " 0.53567012, 0.53839258, 0.54111506, 0.54383753, 0.54656 ,\n", - " 0.54928247, 0.55200494, 0.5547274 , 0.55744986, 0.56017233,\n", - " 0.5628948 , 0.56561729, 0.56833976, 0.57106222, 0.57378469,\n", - " 0.57650716, 0.57922963, 0.5819521 , 0.58467456, 0.58739702,\n", - " 0.59011948, 0.59284194, 0.5955644 , 0.59828687, 0.60100935,\n", - " 0.60373182, 0.60645429, 0.60917677, 0.61189925, 0.61462172,\n", - " 0.61734419, 0.62006666, 0.62278914, 0.62551162, 0.62823408,\n", - " 0.63095656, 0.63367903, 0.6364015 , 0.63912397, 0.64184645,\n", - " 0.64456893, 0.6472914 , 0.65001389, 0.65273637, 0.65545884,\n", - " 0.65818131, 0.66090379, 0.66362625, 0.66634874, 0.66907121,\n", - " 0.67179369, 0.67451616, 0.67723865, 0.67996113, 0.68268361,\n", - " 0.68540608, 0.68812855, 0.69085103, 0.6935735 , 0.69629597,\n", - " 0.69901843, 0.7017409 , 0.70446338, 0.70718585, 0.70990833,\n", - " 0.71263081, 0.71535328, 0.71807574, 0.72079822, 0.72352069,\n", - " 0.72624317, 0.72896564, 0.7316881 , 0.73441057, 0.73713303,\n", - " 0.73985551, 0.74257799, 0.74530047, 0.74802293, 0.7507454 ,\n", - " 0.75346787, 0.75619034, 0.75891281, 0.76163529, 0.76435776,\n", - " 0.76708024, 0.7698027 , 0.77252517, 0.77524765, 0.77797012,\n", - " 0.78069258, 0.78341506, 0.78613753, 0.78885999, 0.79158246,\n", - " 0.79430494, 0.79702741, 0.79974987, 0.80247234, 0.8051948 ,\n", - " 0.80791727, 0.81063974, 0.81336221, 0.81608468, 0.81880714,\n", - " 0.82152961, 0.82425208, 0.82697453, 0.829697 , 0.83241946,\n", - " 0.83514192, 0.83786439, 0.84058684, 0.84330931, 0.84603177,\n", - " 0.84875424, 0.8514767 , 0.85419916, 0.85692162, 0.85964409,\n", - " 0.86236656, 0.86508902, 0.86781149, 0.87053395, 0.87325642,\n", - " 0.87597888, 0.87870135, 0.88142383, 0.8841463 , 0.88686877,\n", - " 0.88959124, 0.89231371, 0.8950362 , 0.89775868, 0.90048116,\n", - " 0.90320364, 0.90592613, 1. ])],\n", - " array([4.4 , 4.2935653 , 4.2768621 , 4.2647018 , 4.2540312 ,\n", - " 4.2449446 , 4.2364879 , 4.2302647 , 4.2225528 , 4.2182574 ,\n", - " 4.213294 , 4.2090373 , 4.2051239 , 4.2012677 , 4.1981564 ,\n", - " 4.1955218 , 4.1931167 , 4.1889744 , 4.1881533 , 4.1865883 ,\n", - " 4.1850228 , 4.1832285 , 4.1808805 , 4.1805749 , 4.1789522 ,\n", - " 4.1768146 , 4.1768146 , 4.1752872 , 4.173111 , 4.1726718 ,\n", - " 4.1710877 , 4.1702285 , 4.168797 , 4.1669831 , 4.1655135 ,\n", - " 4.1634517 , 4.1598248 , 4.1571712 , 4.154079 , 4.1504135 ,\n", - " 4.1466532 , 4.1423388 , 4.1382346 , 4.1338248 , 4.1305799 ,\n", - " 4.1272392 , 4.1228104 , 4.1186109 , 4.114182 , 4.1096005 ,\n", - " 4.1046948 , 4.1004758 , 4.0956464 , 4.0909696 , 4.0864644 ,\n", - " 4.0818448 , 4.077683 , 4.0733309 , 4.0690737 , 4.0647216 ,\n", - " 4.0608654 , 4.0564747 , 4.0527525 , 4.0492401 , 4.0450211 ,\n", - " 4.041986 , 4.0384736 , 4.035171 , 4.0320406 , 4.0289288 ,\n", - " 4.02597 , 4.0227437 , 4.0199757 , 4.0175133 , 4.0149746 ,\n", - " 4.0122066 , 4.009954 , 4.0075679 , 4.0050669 , 4.0023184 ,\n", - " 3.9995501 , 3.9969349 , 3.9926589 , 3.9889555 , 3.9834003 ,\n", - " 3.9783037 , 3.9755929 , 3.9707632 , 3.9681098 , 3.9635665 ,\n", - " 3.9594433 , 3.9556634 , 3.9521511 , 3.9479132 , 3.9438281 ,\n", - " 3.9400866 , 3.9362304 , 3.9314201 , 3.9283848 , 3.9242232 ,\n", - " 3.9192028 , 3.9166257 , 3.9117961 , 3.90815 , 3.9038739 ,\n", - " 3.8995597 , 3.8959136 , 3.8909314 , 3.8872662 , 3.8831048 ,\n", - " 3.8793442 , 3.8747628 , 3.8702576 , 3.8666878 , 3.8623927 ,\n", - " 3.8581741 , 3.854146 , 3.8499846 , 3.8450022 , 3.8422534 ,\n", - " 3.8380919 , 3.8341596 , 3.8309333 , 3.8272109 , 3.823164 ,\n", - " 3.8192315 , 3.8159864 , 3.8123021 , 3.8090379 , 3.8071671 ,\n", - " 3.8040555 , 3.8013639 , 3.7970879 , 3.7953317 , 3.7920673 ,\n", - " 3.788383 , 3.7855389 , 3.7838206 , 3.78111 , 3.7794874 ,\n", - " 3.7769294 , 3.773608 , 3.7695992 , 3.7690265 , 3.7662776 ,\n", - " 3.7642922 , 3.7626889 , 3.7603791 , 3.7575538 , 3.7552056 ,\n", - " 3.7533159 , 3.7507198 , 3.7487535 , 3.7471499 , 3.7442865 ,\n", - " 3.7423012 , 3.7400677 , 3.7385788 , 3.7345319 , 3.7339211 ,\n", - " 3.7301605 , 3.7301033 , 3.7278316 , 3.7251589 , 3.723861 ,\n", - " 3.7215703 , 3.7191267 , 3.7172751 , 3.7157097 , 3.7130945 ,\n", - " 3.7099447 , 3.7071004 , 3.7045615 , 3.703588 , 3.70208 ,\n", - " 3.7002664 , 3.6972122 , 3.6952841 , 3.6929362 , 3.6898055 ,\n", - " 3.6890991 , 3.686522 , 3.6849759 , 3.6821697 , 3.6808143 ,\n", - " 3.6786573 , 3.6761947 , 3.674763 , 3.6712887 , 3.6697233 ,\n", - " 3.6678908 , 3.6652565 , 3.6630611 , 3.660274 , 3.6583652 ,\n", - " 3.6554828 , 3.6522949 , 3.6499848 , 3.6470451 , 3.6405547 ,\n", - " 3.6383405 , 3.635076 , 3.633549 , 3.6322317 , 3.6306856 ,\n", - " 3.6283948 , 3.6268487 , 3.6243098 , 3.6223626 , 3.6193655 ,\n", - " 3.6177621 , 3.6158531 , 3.6128371 , 3.6118062 , 3.6094582 ,\n", - " 3.6072438 , 3.6049912 , 3.6030822 , 3.6012688 , 3.5995889 ,\n", - " 3.5976417 , 3.5951984 , 3.593843 , 3.5916286 , 3.5894907 ,\n", - " 3.587429 , 3.5852909 , 3.5834775 , 3.5817785 , 3.5801177 ,\n", - " 3.5778842 , 3.5763381 , 3.5737801 , 3.5721002 , 3.5702102 ,\n", - " 3.5684922 , 3.5672133 , 3.52302167]))),\n", - " 'Positive electrode OCP entropic change [V.K-1]': 0.0,\n", - " 'Positive electrode active material volume fraction': 0.665,\n", - " 'Positive electrode diffusivity [m2.s-1]': 4e-15,\n", - " 'Positive electrode electrons in reaction': 1.0,\n", - " 'Positive electrode exchange-current density [A.m-2]': ,\n", - " 'Positive electrode porosity': 0.335,\n", - " 'Positive electrode thickness [m]': 7.56e-05,\n", - " 'Positive particle radius [m]': 5.22e-06,\n", - " 'Reference temperature [K]': 298.15,\n", - " 'Separator Bruggeman coefficient (electrolyte)': 1.5,\n", - " 'Separator porosity': 0.47,\n", - " 'Separator thickness [m]': 1.2e-05,\n", - " 'Typical current [A]': 5.0,\n", - " 'Typical electrolyte concentration [mol.m-3]': 1000.0,\n", - " 'Upper voltage cut-off [V]': 4.4}" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "def graphite_mcmb2528_diffusivity_Dualfoil1998(sto, T):\n", - " D_ref = 3.9 * 10 ** (-14)\n", - " E_D_s = 42770\n", - " arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T))\n", - " return D_ref * arrhenius\n", - "\n", - "neg_ocp = np.array([[0. , 1.81772748],\n", - " [0.03129623, 1.0828807 ],\n", - " [0.03499902, 0.99593794],\n", - " [0.0387018 , 0.90023398],\n", - " [0.04240458, 0.79649431],\n", - " [0.04610736, 0.73354429],\n", - " [0.04981015, 0.66664314],\n", - " [0.05351292, 0.64137149],\n", - " [0.05721568, 0.59813869],\n", - " [0.06091845, 0.5670836 ],\n", - " [0.06462122, 0.54746181],\n", - " [0.06832399, 0.53068399],\n", - " [0.07202675, 0.51304734],\n", - " [0.07572951, 0.49394092],\n", - " [0.07943227, 0.47926274],\n", - " [0.08313503, 0.46065259],\n", - " [0.08683779, 0.45992726],\n", - " [0.09054054, 0.43801501],\n", - " [0.09424331, 0.42438665],\n", - " [0.09794607, 0.41150269],\n", - " [0.10164883, 0.40033659],\n", - " [0.10535158, 0.38957134],\n", - " [0.10905434, 0.37756538],\n", - " [0.1127571 , 0.36292541],\n", - " [0.11645985, 0.34357086],\n", - " [0.12016261, 0.3406314 ],\n", - " [0.12386536, 0.32299468],\n", - " [0.12756811, 0.31379458],\n", - " [0.13127086, 0.30795386],\n", - " [0.13497362, 0.29207319],\n", - " [0.13867638, 0.28697687],\n", - " [0.14237913, 0.27405477],\n", - " [0.14608189, 0.2670497 ],\n", - " [0.14978465, 0.25857493],\n", - " [0.15348741, 0.25265783],\n", - " [0.15719018, 0.24826777],\n", - " [0.16089294, 0.2414345 ],\n", - " [0.1645957 , 0.23362778],\n", - " [0.16829847, 0.22956218],\n", - " [0.17200122, 0.22370236],\n", - " [0.17570399, 0.22181271],\n", - " [0.17940674, 0.22089651],\n", - " [0.1831095 , 0.2194268 ],\n", - " [0.18681229, 0.21830064],\n", - " [0.19051504, 0.21845333],\n", - " [0.1942178 , 0.21753715],\n", - " [0.19792056, 0.21719357],\n", - " [0.20162334, 0.21635373],\n", - " [0.2053261 , 0.21667822],\n", - " [0.20902886, 0.21738444],\n", - " [0.21273164, 0.21469313],\n", - " [0.2164344 , 0.21541846],\n", - " [0.22013716, 0.21465495],\n", - " [0.22383993, 0.2135479 ],\n", - " [0.2275427 , 0.21392964],\n", - " [0.23124547, 0.21074206],\n", - " [0.23494825, 0.20873788],\n", - " [0.23865101, 0.20465319],\n", - " [0.24235377, 0.20205732],\n", - " [0.24605653, 0.19774358],\n", - " [0.2497593 , 0.19444147],\n", - " [0.25346208, 0.19190285],\n", - " [0.25716486, 0.18850531],\n", - " [0.26086762, 0.18581399],\n", - " [0.26457039, 0.18327537],\n", - " [0.26827314, 0.18157659],\n", - " [0.2719759 , 0.17814088],\n", - " [0.27567867, 0.17529686],\n", - " [0.27938144, 0.1719375 ],\n", - " [0.28308421, 0.16934161],\n", - " [0.28678698, 0.16756649],\n", - " [0.29048974, 0.16609676],\n", - " [0.29419251, 0.16414985],\n", - " [0.29789529, 0.16260378],\n", - " [0.30159806, 0.16224113],\n", - " [0.30530083, 0.160027 ],\n", - " [0.30900361, 0.15827096],\n", - " [0.31270637, 0.1588054 ],\n", - " [0.31640913, 0.15552238],\n", - " [0.32011189, 0.15580869],\n", - " [0.32381466, 0.15220118],\n", - " [0.32751744, 0.1511132 ],\n", - " [0.33122021, 0.14987253],\n", - " [0.33492297, 0.14874637],\n", - " [0.33862575, 0.14678037],\n", - " [0.34232853, 0.14620776],\n", - " [0.34603131, 0.14555879],\n", - " [0.34973408, 0.14389819],\n", - " [0.35343685, 0.14359279],\n", - " [0.35713963, 0.14242846],\n", - " [0.36084241, 0.14038612],\n", - " [0.36454517, 0.13882096],\n", - " [0.36824795, 0.13954628],\n", - " [0.37195071, 0.13946992],\n", - " [0.37565348, 0.13780934],\n", - " [0.37935626, 0.13973714],\n", - " [0.38305904, 0.13698858],\n", - " [0.38676182, 0.13523254],\n", - " [0.3904646 , 0.13441178],\n", - " [0.39416737, 0.1352898 ],\n", - " [0.39787015, 0.13507985],\n", - " [0.40157291, 0.13647321],\n", - " [0.40527567, 0.13601512],\n", - " [0.40897844, 0.13435452],\n", - " [0.41268121, 0.1334765 ],\n", - " [0.41638398, 0.1348317 ],\n", - " [0.42008676, 0.13275118],\n", - " [0.42378953, 0.13286571],\n", - " [0.4274923 , 0.13263667],\n", - " [0.43119506, 0.13456447],\n", - " [0.43489784, 0.13471718],\n", - " [0.43860061, 0.13395369],\n", - " [0.44230338, 0.13448814],\n", - " [0.44600615, 0.1334765 ],\n", - " [0.44970893, 0.13298023],\n", - " [0.45341168, 0.13259849],\n", - " [0.45711444, 0.13338107],\n", - " [0.46081719, 0.13309476],\n", - " [0.46451994, 0.13275118],\n", - " [0.46822269, 0.13443087],\n", - " [0.47192545, 0.13315202],\n", - " [0.47562821, 0.132713 ],\n", - " [0.47933098, 0.1330184 ],\n", - " [0.48303375, 0.13278936],\n", - " [0.48673651, 0.13225491],\n", - " [0.49043926, 0.13317111],\n", - " [0.49414203, 0.13263667],\n", - " [0.49784482, 0.13187316],\n", - " [0.50154759, 0.13265574],\n", - " [0.50525036, 0.13250305],\n", - " [0.50895311, 0.13324745],\n", - " [0.51265586, 0.13204496],\n", - " [0.51635861, 0.13242669],\n", - " [0.52006139, 0.13233127],\n", - " [0.52376415, 0.13198769],\n", - " [0.52746692, 0.13254122],\n", - " [0.53116969, 0.13145325],\n", - " [0.53487245, 0.13298023],\n", - " [0.53857521, 0.13168229],\n", - " [0.54227797, 0.1313578 ],\n", - " [0.54598074, 0.13235036],\n", - " [0.5496835 , 0.13120511],\n", - " [0.55338627, 0.13089971],\n", - " [0.55708902, 0.13109058],\n", - " [0.56079178, 0.13082336],\n", - " [0.56449454, 0.13011713],\n", - " [0.5681973 , 0.129869 ],\n", - " [0.57190006, 0.12992626],\n", - " [0.57560282, 0.12942998],\n", - " [0.57930558, 0.12796026],\n", - " [0.58300835, 0.12862831],\n", - " [0.58671112, 0.12656689],\n", - " [0.59041389, 0.12734947],\n", - " [0.59411664, 0.12509716],\n", - " [0.59781941, 0.12110791],\n", - " [0.60152218, 0.11839751],\n", - " [0.60522496, 0.11244226],\n", - " [0.60892772, 0.11307214],\n", - " [0.61263048, 0.1092165 ],\n", - " [0.61633325, 0.10683058],\n", - " [0.62003603, 0.10433014],\n", - " [0.6237388 , 0.10530359],\n", - " [0.62744156, 0.10056993],\n", - " [0.63114433, 0.09950104],\n", - " [0.63484711, 0.09854668],\n", - " [0.63854988, 0.09921473],\n", - " [0.64225265, 0.09541635],\n", - " [0.64595543, 0.09980643],\n", - " [0.64965823, 0.0986612 ],\n", - " [0.653361 , 0.09560722],\n", - " [0.65706377, 0.09755413],\n", - " [0.66076656, 0.09612258],\n", - " [0.66446934, 0.09430929],\n", - " [0.66817212, 0.09661885],\n", - " [0.67187489, 0.09366032],\n", - " [0.67557767, 0.09522548],\n", - " [0.67928044, 0.09535909],\n", - " [0.68298322, 0.09316404],\n", - " [0.686686 , 0.09450016],\n", - " [0.69038878, 0.0930877 ],\n", - " [0.69409156, 0.09343126],\n", - " [0.69779433, 0.0932404 ],\n", - " [0.70149709, 0.09350762],\n", - " [0.70519988, 0.09339309],\n", - " [0.70890264, 0.09291591],\n", - " [0.7126054 , 0.09303043],\n", - " [0.71630818, 0.0926296 ],\n", - " [0.72001095, 0.0932404 ],\n", - " [0.72371371, 0.09261052],\n", - " [0.72741648, 0.09249599],\n", - " [0.73111925, 0.09240055],\n", - " [0.73482204, 0.09253416],\n", - " [0.7385248 , 0.09209515],\n", - " [0.74222757, 0.09234329],\n", - " [0.74593034, 0.09366032],\n", - " [0.74963312, 0.09333583],\n", - " [0.75333589, 0.09322131],\n", - " [0.75703868, 0.09264868],\n", - " [0.76074146, 0.09253416],\n", - " [0.76444422, 0.09243873],\n", - " [0.76814698, 0.09230512],\n", - " [0.77184976, 0.09310678],\n", - " [0.77555253, 0.09165615],\n", - " [0.77925531, 0.09159888],\n", - " [0.78295807, 0.09207606],\n", - " [0.78666085, 0.09175158],\n", - " [0.79036364, 0.09177067],\n", - " [0.79406641, 0.09236237],\n", - " [0.79776918, 0.09241964],\n", - " [0.80147197, 0.09320222],\n", - " [0.80517474, 0.09199972],\n", - " [0.80887751, 0.09167523],\n", - " [0.81258028, 0.09322131],\n", - " [0.81628304, 0.09190428],\n", - " [0.81998581, 0.09167523],\n", - " [0.82368858, 0.09285865],\n", - " [0.82739136, 0.09180884],\n", - " [0.83109411, 0.09150345],\n", - " [0.83479688, 0.09186611],\n", - " [0.83849965, 0.0920188 ],\n", - " [0.84220242, 0.09320222],\n", - " [0.84590519, 0.09131257],\n", - " [0.84960797, 0.09117896],\n", - " [0.85331075, 0.09133166],\n", - " [0.85701353, 0.09089265],\n", - " [0.86071631, 0.09058725],\n", - " [0.86441907, 0.09051091],\n", - " [0.86812186, 0.09033912],\n", - " [0.87182464, 0.09041547],\n", - " [0.87552742, 0.0911217 ],\n", - " [0.87923019, 0.0894611 ],\n", - " [0.88293296, 0.08999555],\n", - " [0.88663573, 0.08921297],\n", - " [0.89033849, 0.08881213],\n", - " [0.89404126, 0.08797229],\n", - " [0.89774404, 0.08709427],\n", - " [0.9014468 , 0.08503284],\n", - " [1. , 0.07601531]])\n", - "\n", - "pos_ocp = np.array([[0.24879728, 4.4 ],\n", - " [0.26614516, 4.2935653 ],\n", - " [0.26886763, 4.2768621 ],\n", - " [0.27159011, 4.2647018 ],\n", - " [0.27431258, 4.2540312 ],\n", - " [0.27703505, 4.2449446 ],\n", - " [0.27975753, 4.2364879 ],\n", - " [0.28248 , 4.2302647 ],\n", - " [0.28520247, 4.2225528 ],\n", - " [0.28792495, 4.2182574 ],\n", - " [0.29064743, 4.213294 ],\n", - " [0.29336992, 4.2090373 ],\n", - " [0.29609239, 4.2051239 ],\n", - " [0.29881487, 4.2012677 ],\n", - " [0.30153735, 4.1981564 ],\n", - " [0.30425983, 4.1955218 ],\n", - " [0.30698231, 4.1931167 ],\n", - " [0.30970478, 4.1889744 ],\n", - " [0.31242725, 4.1881533 ],\n", - " [0.31514973, 4.1865883 ],\n", - " [0.3178722 , 4.1850228 ],\n", - " [0.32059466, 4.1832285 ],\n", - " [0.32331714, 4.1808805 ],\n", - " [0.32603962, 4.1805749 ],\n", - " [0.32876209, 4.1789522 ],\n", - " [0.33148456, 4.1768146 ],\n", - " [0.33420703, 4.1768146 ],\n", - " [0.3369295 , 4.1752872 ],\n", - " [0.33965197, 4.173111 ],\n", - " [0.34237446, 4.1726718 ],\n", - " [0.34509694, 4.1710877 ],\n", - " [0.34781941, 4.1702285 ],\n", - " [0.3505419 , 4.168797 ],\n", - " [0.35326438, 4.1669831 ],\n", - " [0.35598685, 4.1655135 ],\n", - " [0.35870932, 4.1634517 ],\n", - " [0.3614318 , 4.1598248 ],\n", - " [0.36415428, 4.1571712 ],\n", - " [0.36687674, 4.154079 ],\n", - " [0.36959921, 4.1504135 ],\n", - " [0.37232169, 4.1466532 ],\n", - " [0.37504418, 4.1423388 ],\n", - " [0.37776665, 4.1382346 ],\n", - " [0.38048913, 4.1338248 ],\n", - " [0.38321161, 4.1305799 ],\n", - " [0.38593408, 4.1272392 ],\n", - " [0.38865655, 4.1228104 ],\n", - " [0.39137903, 4.1186109 ],\n", - " [0.39410151, 4.114182 ],\n", - " [0.39682398, 4.1096005 ],\n", - " [0.39954645, 4.1046948 ],\n", - " [0.40226892, 4.1004758 ],\n", - " [0.4049914 , 4.0956464 ],\n", - " [0.40771387, 4.0909696 ],\n", - " [0.41043634, 4.0864644 ],\n", - " [0.41315882, 4.0818448 ],\n", - " [0.41588129, 4.077683 ],\n", - " [0.41860377, 4.0733309 ],\n", - " [0.42132624, 4.0690737 ],\n", - " [0.42404872, 4.0647216 ],\n", - " [0.4267712 , 4.0608654 ],\n", - " [0.42949368, 4.0564747 ],\n", - " [0.43221616, 4.0527525 ],\n", - " [0.43493864, 4.0492401 ],\n", - " [0.43766111, 4.0450211 ],\n", - " [0.44038359, 4.041986 ],\n", - " [0.44310607, 4.0384736 ],\n", - " [0.44582856, 4.035171 ],\n", - " [0.44855103, 4.0320406 ],\n", - " [0.45127351, 4.0289288 ],\n", - " [0.453996 , 4.02597 ],\n", - " [0.45671848, 4.0227437 ],\n", - " [0.45944095, 4.0199757 ],\n", - " [0.46216343, 4.0175133 ],\n", - " [0.46488592, 4.0149746 ],\n", - " [0.46760838, 4.0122066 ],\n", - " [0.47033085, 4.009954 ],\n", - " [0.47305333, 4.0075679 ],\n", - " [0.47577581, 4.0050669 ],\n", - " [0.47849828, 4.0023184 ],\n", - " [0.48122074, 3.9995501 ],\n", - " [0.48394321, 3.9969349 ],\n", - " [0.48666569, 3.9926589 ],\n", - " [0.48938816, 3.9889555 ],\n", - " [0.49211064, 3.9834003 ],\n", - " [0.4948331 , 3.9783037 ],\n", - " [0.49755557, 3.9755929 ],\n", - " [0.50027804, 3.9707632 ],\n", - " [0.50300052, 3.9681098 ],\n", - " [0.50572298, 3.9635665 ],\n", - " [0.50844545, 3.9594433 ],\n", - " [0.51116792, 3.9556634 ],\n", - " [0.51389038, 3.9521511 ],\n", - " [0.51661284, 3.9479132 ],\n", - " [0.51933531, 3.9438281 ],\n", - " [0.52205777, 3.9400866 ],\n", - " [0.52478024, 3.9362304 ],\n", - " [0.52750271, 3.9314201 ],\n", - " [0.53022518, 3.9283848 ],\n", - " [0.53294765, 3.9242232 ],\n", - " [0.53567012, 3.9192028 ],\n", - " [0.53839258, 3.9166257 ],\n", - " [0.54111506, 3.9117961 ],\n", - " [0.54383753, 3.90815 ],\n", - " [0.54656 , 3.9038739 ],\n", - " [0.54928247, 3.8995597 ],\n", - " [0.55200494, 3.8959136 ],\n", - " [0.5547274 , 3.8909314 ],\n", - " [0.55744986, 3.8872662 ],\n", - " [0.56017233, 3.8831048 ],\n", - " [0.5628948 , 3.8793442 ],\n", - " [0.56561729, 3.8747628 ],\n", - " [0.56833976, 3.8702576 ],\n", - " [0.57106222, 3.8666878 ],\n", - " [0.57378469, 3.8623927 ],\n", - " [0.57650716, 3.8581741 ],\n", - " [0.57922963, 3.854146 ],\n", - " [0.5819521 , 3.8499846 ],\n", - " [0.58467456, 3.8450022 ],\n", - " [0.58739702, 3.8422534 ],\n", - " [0.59011948, 3.8380919 ],\n", - " [0.59284194, 3.8341596 ],\n", - " [0.5955644 , 3.8309333 ],\n", - " [0.59828687, 3.8272109 ],\n", - " [0.60100935, 3.823164 ],\n", - " [0.60373182, 3.8192315 ],\n", - " [0.60645429, 3.8159864 ],\n", - " [0.60917677, 3.8123021 ],\n", - " [0.61189925, 3.8090379 ],\n", - " [0.61462172, 3.8071671 ],\n", - " [0.61734419, 3.8040555 ],\n", - " [0.62006666, 3.8013639 ],\n", - " [0.62278914, 3.7970879 ],\n", - " [0.62551162, 3.7953317 ],\n", - " [0.62823408, 3.7920673 ],\n", - " [0.63095656, 3.788383 ],\n", - " [0.63367903, 3.7855389 ],\n", - " [0.6364015 , 3.7838206 ],\n", - " [0.63912397, 3.78111 ],\n", - " [0.64184645, 3.7794874 ],\n", - " [0.64456893, 3.7769294 ],\n", - " [0.6472914 , 3.773608 ],\n", - " [0.65001389, 3.7695992 ],\n", - " [0.65273637, 3.7690265 ],\n", - " [0.65545884, 3.7662776 ],\n", - " [0.65818131, 3.7642922 ],\n", - " [0.66090379, 3.7626889 ],\n", - " [0.66362625, 3.7603791 ],\n", - " [0.66634874, 3.7575538 ],\n", - " [0.66907121, 3.7552056 ],\n", - " [0.67179369, 3.7533159 ],\n", - " [0.67451616, 3.7507198 ],\n", - " [0.67723865, 3.7487535 ],\n", - " [0.67996113, 3.7471499 ],\n", - " [0.68268361, 3.7442865 ],\n", - " [0.68540608, 3.7423012 ],\n", - " [0.68812855, 3.7400677 ],\n", - " [0.69085103, 3.7385788 ],\n", - " [0.6935735 , 3.7345319 ],\n", - " [0.69629597, 3.7339211 ],\n", - " [0.69901843, 3.7301605 ],\n", - " [0.7017409 , 3.7301033 ],\n", - " [0.70446338, 3.7278316 ],\n", - " [0.70718585, 3.7251589 ],\n", - " [0.70990833, 3.723861 ],\n", - " [0.71263081, 3.7215703 ],\n", - " [0.71535328, 3.7191267 ],\n", - " [0.71807574, 3.7172751 ],\n", - " [0.72079822, 3.7157097 ],\n", - " [0.72352069, 3.7130945 ],\n", - " [0.72624317, 3.7099447 ],\n", - " [0.72896564, 3.7071004 ],\n", - " [0.7316881 , 3.7045615 ],\n", - " [0.73441057, 3.703588 ],\n", - " [0.73713303, 3.70208 ],\n", - " [0.73985551, 3.7002664 ],\n", - " [0.74257799, 3.6972122 ],\n", - " [0.74530047, 3.6952841 ],\n", - " [0.74802293, 3.6929362 ],\n", - " [0.7507454 , 3.6898055 ],\n", - " [0.75346787, 3.6890991 ],\n", - " [0.75619034, 3.686522 ],\n", - " [0.75891281, 3.6849759 ],\n", - " [0.76163529, 3.6821697 ],\n", - " [0.76435776, 3.6808143 ],\n", - " [0.76708024, 3.6786573 ],\n", - " [0.7698027 , 3.6761947 ],\n", - " [0.77252517, 3.674763 ],\n", - " [0.77524765, 3.6712887 ],\n", - " [0.77797012, 3.6697233 ],\n", - " [0.78069258, 3.6678908 ],\n", - " [0.78341506, 3.6652565 ],\n", - " [0.78613753, 3.6630611 ],\n", - " [0.78885999, 3.660274 ],\n", - " [0.79158246, 3.6583652 ],\n", - " [0.79430494, 3.6554828 ],\n", - " [0.79702741, 3.6522949 ],\n", - " [0.79974987, 3.6499848 ],\n", - " [0.80247234, 3.6470451 ],\n", - " [0.8051948 , 3.6405547 ],\n", - " [0.80791727, 3.6383405 ],\n", - " [0.81063974, 3.635076 ],\n", - " [0.81336221, 3.633549 ],\n", - " [0.81608468, 3.6322317 ],\n", - " [0.81880714, 3.6306856 ],\n", - " [0.82152961, 3.6283948 ],\n", - " [0.82425208, 3.6268487 ],\n", - " [0.82697453, 3.6243098 ],\n", - " [0.829697 , 3.6223626 ],\n", - " [0.83241946, 3.6193655 ],\n", - " [0.83514192, 3.6177621 ],\n", - " [0.83786439, 3.6158531 ],\n", - " [0.84058684, 3.6128371 ],\n", - " [0.84330931, 3.6118062 ],\n", - " [0.84603177, 3.6094582 ],\n", - " [0.84875424, 3.6072438 ],\n", - " [0.8514767 , 3.6049912 ],\n", - " [0.85419916, 3.6030822 ],\n", - " [0.85692162, 3.6012688 ],\n", - " [0.85964409, 3.5995889 ],\n", - " [0.86236656, 3.5976417 ],\n", - " [0.86508902, 3.5951984 ],\n", - " [0.86781149, 3.593843 ],\n", - " [0.87053395, 3.5916286 ],\n", - " [0.87325642, 3.5894907 ],\n", - " [0.87597888, 3.587429 ],\n", - " [0.87870135, 3.5852909 ],\n", - " [0.88142383, 3.5834775 ],\n", - " [0.8841463 , 3.5817785 ],\n", - " [0.88686877, 3.5801177 ],\n", - " [0.88959124, 3.5778842 ],\n", - " [0.89231371, 3.5763381 ],\n", - " [0.8950362 , 3.5737801 ],\n", - " [0.89775868, 3.5721002 ],\n", - " [0.90048116, 3.5702102 ],\n", - " [0.90320364, 3.5684922 ],\n", - " [0.90592613, 3.5672133 ],\n", - " [1. , 3.52302167]])\n", - "\n", - "from pybamm import exp, constants\n", - "\n", - "\n", - "def graphite_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_n_max, T):\n", - " m_ref = 6.48e-7 # (A/m2)(mol/m3)**1.5 - includes ref concentrations\n", - " E_r = 35000\n", - " arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T))\n", - "\n", - " return (\n", - " m_ref * arrhenius * c_e ** 0.5 * c_s_surf ** 0.5 * (c_n_max - c_s_surf) ** 0.5\n", - " )\n", - "\n", - "def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_p_max, T):\n", - " m_ref = 3.42e-6 # (A/m2)(mol/m3)**1.5 - includes ref concentrations\n", - " E_r = 17800\n", - " arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T))\n", - "\n", - " return (\n", - " m_ref * arrhenius * c_e ** 0.5 * c_s_surf ** 0.5 * (c_p_max - c_s_surf) ** 0.5\n", - " )\n", - "\n", - "\n", - "values = {\n", - " 'Negative electrode thickness [m]': 8.52e-05,\n", - " 'Separator thickness [m]': 1.2e-05,\n", - " 'Positive electrode thickness [m]': 7.56e-05,\n", - " 'Electrode height [m]': 0.065,\n", - " 'Electrode width [m]': 1.58,\n", - " 'Nominal cell capacity [A.h]': 5.0,\n", - " 'Typical current [A]': 5.0,\n", - " 'Current function [A]': 5.0,\n", - " 'Maximum concentration in negative electrode [mol.m-3]': 33133.0,\n", - " 'Negative electrode diffusivity [m2.s-1]': 3.3e-14,\n", - " 'Negative electrode OCP [V]': ('graphite_LGM50_ocp_Chen2020', neg_ocp),\n", - " 'Negative electrode porosity': 0.25,\n", - " 'Negative electrode active material volume fraction': 0.75,\n", - " 'Negative particle radius [m]': 5.86e-06,\n", - " 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5,\n", - " 'Negative electrode Bruggeman coefficient (electrode)': 1.5,\n", - " 'Negative electrode electrons in reaction': 1.0,\n", - " 'Negative electrode exchange-current density [A.m-2]': graphite_LGM50_electrolyte_exchange_current_density_Chen2020,\n", - " 'Negative electrode OCP entropic change [V.K-1]': 0.0,\n", - " 'Maximum concentration in positive electrode [mol.m-3]': 63104.0,\n", - " 'Positive electrode diffusivity [m2.s-1]': 4e-15,\n", - " 'Positive electrode OCP [V]': ('nmc_LGM50_ocp_Chen2020', pos_ocp),\n", - " 'Positive electrode porosity': 0.335,\n", - " 'Positive electrode active material volume fraction': 0.665,\n", - " 'Positive particle radius [m]': 5.22e-06,\n", - " 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5,\n", - " 'Positive electrode Bruggeman coefficient (electrode)': 1.5,\n", - " 'Positive electrode electrons in reaction': 1.0,\n", - " 'Positive electrode exchange-current density [A.m-2]': nmc_LGM50_electrolyte_exchange_current_density_Chen2020,\n", - " 'Positive electrode OCP entropic change [V.K-1]': 0.0,\n", - " 'Separator porosity': 0.47,\n", - " 'Separator Bruggeman coefficient (electrolyte)': 1.5,\n", - " 'Typical electrolyte concentration [mol.m-3]': 1000.0,\n", - " 'Reference temperature [K]': 298.15,\n", - " 'Ambient temperature [K]': 298.15,\n", - " 'Number of electrodes connected in parallel to make a cell': 1.0,\n", - " 'Number of cells connected in series to make a battery': 1.0,\n", - " 'Lower voltage cut-off [V]': 2.5,\n", - " 'Upper voltage cut-off [V]': 4.4,\n", - " 'Initial concentration in negative electrode [mol.m-3]': 29866.0,\n", - " 'Initial concentration in positive electrode [mol.m-3]': 17038.0,\n", - " 'Initial temperature [K]': 298.15\n", - "}\n", - "param = pybamm.ParameterValues(values)\n", - "param" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here we would have got the same result by doing" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'Negative electrode thickness [m]': 8.52e-05,\n", - " 'Separator thickness [m]': 1.2e-05,\n", - " 'Positive electrode thickness [m]': 7.56e-05,\n", - " 'Electrode height [m]': 0.065,\n", - " 'Electrode width [m]': 1.58,\n", - " 'Nominal cell capacity [A.h]': 5.0,\n", - " 'Typical current [A]': 5.0,\n", - " 'Current function [A]': 5.0,\n", - " 'Maximum concentration in negative electrode [mol.m-3]': 33133.0,\n", - " 'Negative electrode diffusivity [m2.s-1]': 3.3e-14,\n", - " 'Negative electrode OCP [V]': ,\n", - " 'Negative electrode porosity': 0.25,\n", - " 'Negative electrode active material volume fraction': 0.75,\n", - " 'Negative particle radius [m]': 5.86e-06,\n", - " 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5,\n", - " 'Negative electrode Bruggeman coefficient (electrode)': 1.5,\n", - " 'Negative electrode electrons in reaction': 1.0,\n", - " 'Negative electrode exchange-current density [A.m-2]': ,\n", - " 'Negative electrode OCP entropic change [V.K-1]': 0.0,\n", - " 'Maximum concentration in positive electrode [mol.m-3]': 63104.0,\n", - " 'Positive electrode diffusivity [m2.s-1]': 4e-15,\n", - " 'Positive electrode OCP [V]': ,\n", - " 'Positive electrode porosity': 0.335,\n", - " 'Positive electrode active material volume fraction': 0.665,\n", - " 'Positive particle radius [m]': 5.22e-06,\n", - " 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5,\n", - " 'Positive electrode Bruggeman coefficient (electrode)': 1.5,\n", - " 'Positive electrode electrons in reaction': 1.0,\n", - " 'Positive electrode exchange-current density [A.m-2]': ,\n", - " 'Positive electrode OCP entropic change [V.K-1]': 0.0,\n", - " 'Separator porosity': 0.47,\n", - " 'Separator Bruggeman coefficient (electrolyte)': 1.5,\n", - " 'Typical electrolyte concentration [mol.m-3]': 1000.0,\n", - " 'Reference temperature [K]': 298.15,\n", - " 'Ambient temperature [K]': 298.15,\n", - " 'Number of electrodes connected in parallel to make a cell': 1.0,\n", - " 'Number of cells connected in series to make a battery': 1.0,\n", - " 'Lower voltage cut-off [V]': 2.5,\n", - " 'Upper voltage cut-off [V]': 4.2,\n", - " 'Initial concentration in negative electrode [mol.m-3]': 29866.0,\n", - " 'Initial concentration in positive electrode [mol.m-3]': 17038.0,\n", - " 'Initial temperature [K]': 298.15}" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "param_same = pybamm.ParameterValues(\"Chen2020\")\n", - "{k: v for k,v in param_same.items() if k in spm._parameter_info}" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Updating a specific parameter" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Once a parameter set has been defined (either via a dictionary or a pre-built set), single parameters can be updated" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Using a constant value:" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Current function [A]\t5.0\n" - ] + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Parameterisation\n", + "\n", + "In this notebook, we show how to find which parameters are needed in a model and define them.\n", + "\n", + "For other notebooks about parameterization, see:\n", + "\n", + "- The API documentation of [Parameters](https://pybamm.readthedocs.io/en/latest/source/parameters/index.html) can be found at [pybamm.readthedocs.io](https://pybamm.readthedocs.io/)\n", + "- [Setting parameter values](https://github.com/pybamm-team/PyBaMM/blob/develop/examples/notebooks/Getting%20Started/Tutorial%204%20-%20Setting%20parameter%20values.ipynb) can be found at `pybamm/examples/notebooks/Getting Started/Tutorial 4 - Setting parameter values.ipynb`. This explains the basics of how to set the parameters of a model (in less detail than here).\n", + "- [parameter-management.ipynb](https://github.com/pybamm-team/PyBaMM/blob/develop/examples/notebooks/parameterization/parameter-management.ipynb) can be found at `pybamm/examples/notebooks/parameterization/parameter-management.ipynb`. This explains how to add and edit parameters in the `pybamm/input` directories\n", + "- [parameter-values.ipynb](https://github.com/pybamm-team/PyBaMM/blob/develop/examples/notebooks/parameterization/parameter-values.ipynb) can be found at `pybamm/examples/notebooks/parameterization/parameter-values.ipynb`. This explains the basics of the `ParameterValues` class.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding your own parameter sets (using a dictionary)\n", + "\n", + "We will be using the model defined and explained in more detail in [3-negative-particle-problem.ipynb](https://github.com/pybamm-team/PyBaMM/blob/develop/examples/notebooks/Creating%20Models/3-negative-particle-problem.ipynb) example notebook. We begin by importing the required libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "%pip install pybamm -q # install PyBaMM if it is not installed\n", + "import pybamm\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Setting up the model\n", + "\n", + "We define all the parameters and variables using `pybamm.Parameter` and `pybamm.Variable` respectively." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "c = pybamm.Variable(\"Concentration [mol.m-3]\", domain=\"negative particle\")\n", + "\n", + "R = pybamm.Parameter(\"Particle radius [m]\")\n", + "D = pybamm.FunctionParameter(\"Diffusion coefficient [m2.s-1]\", {\"Concentration [mol.m-3]\": c})\n", + "j = pybamm.InputParameter(\"Interfacial current density [A.m-2]\")\n", + "c0 = pybamm.Parameter(\"Initial concentration [mol.m-3]\")\n", + "c_e = pybamm.Parameter(\"Electrolyte concentration [mol.m-3]\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we define our model equations, boundary and initial conditions. We also add the variables required using the dictionary `model.variables`" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "model = pybamm.BaseModel()\n", + "\n", + "# governing equations\n", + "N = -D * pybamm.grad(c) # flux\n", + "dcdt = -pybamm.div(N)\n", + "model.rhs = {c: dcdt} \n", + "\n", + "# boundary conditions \n", + "lbc = pybamm.Scalar(0)\n", + "rbc = -j\n", + "model.boundary_conditions = {c: {\"left\": (lbc, \"Neumann\"), \"right\": (rbc, \"Neumann\")}}\n", + "\n", + "# initial conditions \n", + "model.initial_conditions = {c: c0}\n", + "\n", + "model.variables = {\n", + " \"Concentration [mol.m-3]\": c,\n", + " \"Surface concentration [mol.m-3]\": pybamm.surf(c),\n", + " \"Flux [mol.m-2.s-1]\": N,\n", + "}\n", + "\n", + "model.length_scales = {\"negative particle\": pybamm.Scalar(1)}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We also define the geometry, since there are parameters in the geometry too" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "r = pybamm.SpatialVariable(\"r\", domain=[\"negative particle\"], coord_sys=\"spherical polar\")\n", + "geometry = pybamm.Geometry({\"negative particle\": {r: {\"min\": pybamm.Scalar(0), \"max\": R}}})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Finding the parameters required" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To know what parameters are required by the model and geometry, we can do" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Initial concentration [mol.m-3] (Parameter)\n", + "Interfacial current density [A.m-2] (InputParameter)\n", + "Diffusion coefficient [m2.s-1] (FunctionParameter with input(s) 'Concentration [mol.m-3]')\n", + "\n", + "Particle radius [m] (Parameter)\n" + ] + } + ], + "source": [ + "model.print_parameter_info()\n", + "geometry.print_parameter_info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This tells us that we need to provide parameter values for the initial concentration and Faraday constant, an `InputParameter` at solve time for the interfacial current density, and diffusivity as a function of concentration. Since the electrolyte concentration does not appear anywhere in the model, there is no need to provide a value for it." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding the parameters\n", + "\n", + "Now we can proceed to the step where we add the `parameter` values using a dictionary. We set up a dictionary with parameter names as the dictionary keys and their respective values as the dictionary values." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "def D_fun(c):\n", + " return 3.9 #* pybamm.exp(-c)\n", + "\n", + "values = {\n", + " \"Particle radius [m]\": 2,\n", + " \"Diffusion coefficient [m2.s-1]\": D_fun,\n", + " \"Initial concentration [mol.m-3]\": 2.5,\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can pass this dictionary in `pybamm.ParameterValues` class which accepts a dictionary of parameter names and values. We can then print `param` to check if it was initialised." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'Diffusion coefficient [m2.s-1]': ,\n", + " 'Initial concentration [mol.m-3]': 2.5,\n", + " 'Particle radius [m]': 2}" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "param = pybamm.ParameterValues(values)\n", + "\n", + "param" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Updating the parameter values\n", + "\n", + "The parameter values or `param` can be further updated by using the `update` function of `ParameterValues` class. The `update` function takes a dictionary with keys being the parameters to be updated and their respective values being the updated values. Here we update the `\"Particle radius [m]\"` parameter's value. Additionally, a function can also be passed as a `parameter`'s value which we will see ahead, and a new `parameter` can also be added by passing `check_already_exists=False` in the `update` function." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'Diffusion coefficient [m2.s-1]': ,\n", + " 'Initial concentration [mol.m-3]': 1.5,\n", + " 'Particle radius [m]': 2}" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "param.update({\"Initial concentration [mol.m-3]\": 1.5})\n", + "param" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Solving the model " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Finding the parameters in a model\n", + "\n", + "The `parameter` function of the `BaseModel` class can be used to obtain the parameters of a model." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[FunctionParameter(-0x3c6644568af7f737, Diffusion coefficient [m2.s-1], children=['Concentration [mol.m-3]'], domains={'primary': ['negative particle']}),\n", + " Parameter(-0x20b800b0346146aa, Initial concentration [mol.m-3], children=[], domains={}),\n", + " InputParameter(-0x3fa3c2033279cec1, Interfacial current density [A.m-2], children=[], domains={})]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "parameters = model.parameters\n", + "parameters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As explained in the [3-negative-particle-problem.ipynb](https://github.com/pybamm-team/PyBaMM/blob/develop/examples/notebooks/Creating%20Models/3-negative-particle-problem.ipynb) example, we first process both the `model` and the `geometry`." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "param.process_model(model)\n", + "param.process_geometry(geometry)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now set up our mesh, choose a spatial method, and discretise our model" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "submesh_types = {\"negative particle\": pybamm.Uniform1DSubMesh}\n", + "var_pts = {r: 20}\n", + "mesh = pybamm.Mesh(geometry, submesh_types, var_pts)\n", + "\n", + "spatial_methods = {\"negative particle\": pybamm.FiniteVolume()}\n", + "disc = pybamm.Discretisation(mesh, spatial_methods)\n", + "disc.process_model(model);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We choose a solver and times at which we want the solution returned, and solve the model. Here we give a value for the current density `j`." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA58AAAEYCAYAAADbO0I1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABrjklEQVR4nO3dd5gUVdbH8e+ZAEPOOUhUkkgYEIwoqIgBs5gxsea8u/iadV1zZk2LirrmiAkVBTEBAoLkHHQAAUGCZIbz/tE10owTema66e6Z3+d56pnqW3WrTk33zO1bdeqWuTsiIiIiIiIisZQS7wBERERERESk9FPnU0RERERERGJOnU8RERERERGJOXU+RUREREREJObU+RQREREREZGYU+dTREREREREYk6dTxERkQRkZp3MbJyZTTGziWbWPSivZWajzewPMxuSq84ZZjbNzKaa2admVjsofyTYzhQzm2tma/PZZzkzezZYZ7aZnRzzAxURkTLD9JxPERGRxGNmnwOPuPsIM+sH/MPde5lZJaAz0AHo4O5XBOunAcuAdu7+m5ndD2xy99tzbfdKoLO7X5DHPu8AUt39ZjNLAWq6+2+xPE4RESk7dOVTREQkMTlQNZivRqhjibtvdPdvgS251rdgqmRmFtRdlsd2zwBey2efFwD3BPvZqY6niIhEU1q8A0g0tWvX9mbNmsU7DBERiaNJkyb95u514hzGNcBnZvYgoZPFBxS0srtvN7NLgWnARmAecHn4Oma2F9AcGJW7vplVD2bvMrNewALgCndfkdf+zGwQMAigUqVKXdu0aRPhYYmISGkUSdupzmcuzZo1Y+LEifEOQ0RE4sjMluyh/XwB1M9j0U1Ab+Bad3/HzE4DngP6FLCtdOBSQim5C4EngBuBf4WtNgB4292z89hEGtAY+M7drzOz64AHgXPy2p+7Pws8C5CZmelqO0VEyrZI2k51PkVEROLE3QvqTL4EXB28fAsYWsjmOgXbXBDUfxMYnGudAeS6GhpmNbAJeC9snxcWsk8REZGI6Z5PERGRxLQMODSYP5xQGm1BlgLtzCwn5ekIYFbOQjPbB6gBjM2rsodGIPwQ6BUU9QZmFidwERGRvOjKp4iISGK6GHgsGMV2C8H9lQBmtpjQgELlzOwE4Eh3nxmMVvu1mW0HlgADw7Z3BvC65xrm3symuHun4OU/gZfN7FFgFXB+9A9LRETKKnU+RUREElAwom3XfJY1y6f8aeDpfJbdnk95p7D5JcAhRYtURCQxbd++naysLLZsyT04uJRERkYGjRs3Jj09vch11fkUEREREZFSJysriypVqtCsWTNCT6CSknJ3Vq9eTVZWFs2bNy9y/TJxz6eZ9TWzOWY238xyD74gIiIiIiKlzJYtW6hVq5Y6nlFkZtSqVavYV5NLfefTzFKB/wBHA+2AM8ysXXyjEhERERGRWFPHM/pK8jstC2m33YH57r4QwMxeB/oTwxH8Rs1eQVpKCofsHe/nk4uIiCS+iYvXMOvXDVTNSKNqRjpVMtKoWiH0s0pGOpXKpeoLpIhIKVAWOp+NgF/CXmcB+4evYGaDCEYRbNq0aYl3+MyYhYxftIajO9Tn5mPb0ah6hRJvU0REpLT6dPqvDP12Ub7LU1OMyuXTqFohjSrld++cVs1Ip2rQSc0pr1e1PI2qV6ROlfKkpqjTKiLxsXbtWl599VUuu+yyiNYfMmQIjz76KAsWLGDVqlXUrl0bCN1nefXVV/PJJ59QsWJFhg0bRpcuXQD49NNPufrqq8nOzuaiiy5i8ODQHYZr1qzh9NNPZ/HixTRr1ow333yTGjVqMGzYMP7+97/Tv39/hg7N+/HRmzdvpmfPnsycOZNly5b9GUc0lIXOZ16tzm7DzLv7s8CzAJmZmZ7H+kXy4gXdGfrNQoaMns9Xc1ZxxeGtuOjg5pRPSy3ppkVEREqdv/fdh0GHtmD95h1s2LKdDVt2sD74uWHL9r+Ur9+yg6zfN7N+8/ZQ+dYdeB6td3qqUb9aBo2qV6Bh9Qo0rl6BRjVC8zllGelqm0UkNtauXcuTTz4ZcefzwAMP5Nhjj6VXr167lY8YMYJ58+Yxb948xo8fz6WXXsr48ePJzs7m8ssvZ+TIkTRu3Jhu3bpx/PHH065dO+6991569+7N4MGDuffee7n33nu57777ADj99NMZMmRIvnFUqFCBKVOm0KxZs+Ieer7KQuczC2gS9roxoQd3x0xGeipXHN6aEzo34q6PZvLAZ3N4Z1IWtx/fXqm4IiIiuZRPS6VulVTqVile/Z07nY3bdrBhyw7Wbd7Or+u3sGztZpb+vpmlwc9xC1bz6/ot7MzVSa1dudyfHdFGuTqnTWtVpGpG0R8lICKJ544PZzBz2fqobrNdw6rcdlz7fJcPHjyYBQsW0KlTJ4444ggeeOCBArfXuXPnPMuHDx/Oueeei5nRo0cP1q5dy/Lly1m8eDGtWrWiRYsWAAwYMIDhw4fTrl07hg8fzldffQXAeeedR69evf7sfIabMWMG559/Ptu2bWPnzp288847tG7dOsLfQNGVhc7nBKC1mTUHlgIDgDP3xI4b16jIM+dk8tWcldz+wQzOff4HpeKKiIhEWUqKBWm36TSsXoG2Darmud727J38ui7omAad0mXrNpP1+2bmrNjA6Dkr2bJ95251GlbLoG2DqrRpUIU29avStkEVmtWqRFpqqR+zUURK6N5772X69OlMmTKFDRs20KlTpzzXe/XVV2nXLv/xUJcuXUqTJruupTVu3JilS5fmWT5+/HgAVqxYQYMGDQBo0KABK1euzHPbTz/9NFdffTVnnXUW27ZtIzs7u6iHWSSlvvPp7jvM7ArgMyAVeN7dZ+zJGHrtU5fPrq3Ff79WKq6IiEi8pKem0KRmRZrUrJjncndnzcZtf3ZMF63eyJxfNzB7+QbGzF3FjuCyabm0FPauV5k29avSpn6VUOe0fhVqVS6/Jw9HRIqgoCuUe0KVKlWYMmVKsep6HvcVmFm+5UXRs2dP7r77brKysjjppJNietUTykDnE8DdPwE+iWcM5dOUiisiIpLIzIxalctTq3J5OjauvtuyrTuyWbByI7N/Xc/sXzcwa/l6xsxdxduTsv5cp06V8rRtUJW29av8eaW0ZZ3KlEvTVVKRsm7Dhg0cfPDBeS4r7Mpn48aN+eWXXeOnZmVl0bBhQ7Zt25ZnOUC9evVYvnw5DRo0YPny5dStWzfPbZ955pnsv//+fPzxxxx11FEMHTqUww8/vDiHGJEy0flMJErFFRERST7l01Jp17Aq7RruntL72x9bmb18A7N/Xc+s4OcL361mW3YofTctxWhVtzKdmlSnW7OadG9ek8Y1KujRMSJlQJUqVdiwYcOf88W98nn88cczZMgQBgwYwPjx46lWrRoNGjSgTp06zJs3j0WLFtGoUSNef/11Xn311T/rvPjiiwwePJgXX3yR/v3757nthQsX0qJFC6666ioWLlzI1KlT1fksjZSKKyIikvxqVy7PQa3Lc1DrXY8i2J69k8W/bWTWrxuYvXw9M5ev55Npy3l9QugKRYNqGXRvXvPPzmirOpVJ0SNhREqdWrVqceCBB9KhQweOPvroQgccevzxx7n//vv59ddf6dixI/369WPo0KH069ePTz75hFatWlGxYkVeeOEFANLS0hgyZAhHHXUU2dnZXHDBBbRvH0ovHjx4MKeddhrPPfccTZs25a233spzn2+88Qb/+9//SE9Pp379+tx6663R/SXkYnnlCpdlmZmZPnHixD26z6zfN3HXRzP5bMYKWtSupFRcEZE4M7NJ7p4Z7ziSRTzazmSzc6czZ8UGJixew/hFa5iwaA0rN2wFoEbFdDKb1aR70Blt37CqBjQSiYJZs2bRtm3beIeRUIYNG8bEiRMLfNRKjmbNmjFx4sQ8n/OZ1+82krZTVz4TgFJxRURESreUFAvdD9qgKuf2bIa7s2T1Jn5YHOqI/rB4DSNnrgCgYrlUuu5Vg27NQldHOzetrueRikhUVKhQgREjRnDRRRcxdOjQPNfZvHkzPXv2ZPv27aSkRPdEmK585hLvs7dbd2T/mYprmFJxRUTiQFc+iybebWdpsWL9FiYsXsMPi0LTnBUbcIf0VKNj49A9oz1a1KRHi1rqjIpEQFc+Y0dXPksJjYorIiJSNtWrmsGxHRtybMfQaJXrNm1n4pLQVdEfFq1h6DcLeXrMAiqkp3JQ69r0aVuXw9rUpW6VjDhHLpK43F0DfEVZSS5eqvOZoHJSccfMXaVUXBERkTKoWsV0eretR++29QDYvC2b8YtW8+WslXw5a8Wfabr7Na4WrFeXdg2q6ou2SCAjI4PVq1dTq1Yt/V1EibuzevVqMjKKd9JLabe5JGLq0NYd2Qz9ZhFPjJqnVFwRkT1AabdFk4htZ2nn7sxavoFRs1fwxayV/JS1FndoWC2Dw9vWpXebevRsqfRcKdu2b99OVlYWW7ZsiXcopUpGRgaNGzcmPT19t/JI2k51PnNJ5AY06/dN/OujWXw641eNiisiEkPqfBZNIredZcWqDVsZPXslX8xawbfzf2PTtmyl54rIHqXOZzEkQwOak4q76LeNSsUVEYkBdT6LJhnazrJky/Zsxi3clZ67bF3oqk9Oeu7hberSvqHSc0UkutT5LIZkaUCViisiEjvqfBZNsrSdZZG7M/vXDXw5a/f03AbVMji6QwNO7NyIDo3UERWRklPnsxiSrQENT8VtHqTiHqpUXBGRElHns2iSre0sy1Zt2MroOSsZOXMFY+asYlv2TlrWqcSJnRvRv1MjmtSsGO8QRSRJqfNZDMnagIan4vZtX59bjlMqrohIcanzWTTJ2naWdWs3beOTab/y/uSl/LB4DQDdm9XkhM6NOGbfBlSrmF7IFkREdlHnsxiSuQENT8UFuPLw1krFFREphkTofJpZJ+BpIAPYAVzm7j+YWS3gbaAbMMzdrwircwbwf4ADy4Cz3f03M3sEOCxYrSJQ192r57HPPOsXFmsyt50S8suaTXzw0zLe/TGLBas2Ui41hcPa1OHEzo04rE1dfZcQkUKp81kMpaEBXbp2M//6aCYjpisVV0SkOBKk8/k58Ii7jzCzfsA/3L2XmVUCOgMdgA45nU8zSyPUYWwXdDjvBza5++25tnsl0NndL8hVHlH9vJSGtlNC3J0Zy9bz7o9L+eCnZfz2x1aqZqRxTMeGnNi5EZl71SAlRfeHishfRdJ2pu2pYGTPaVS9Ak+d3ZWvg1Tc857/Qam4IiLJx4GqwXw1Qh1D3H0j8K2Ztcq1vgVTJTNbHdSdn8d2zwBuy6M80vpSipkZHRpVo0OjavxfvzZ8t2A1709eyvuTl/LaDz/TqHoFTugc6oi2qlsl3uGKSJLRlc9cStvZ25xU3CGj5uO4UnFFRCKQIFc+2wKfEeoQpgAHuPuSsOUDgcxcabenAM8DG4F5wGHunh22fC9gHNA4vDzS+rnWHQQMAmjatGnXJUuW5LWalBIbt+5g5MwVvDd5Kd/MW8VOhw6NqnJCp0Yc36mhniEqIkq7LY7S1vnMoVRcEZHI7anOp5l9AdTPY9FNQG9gjLu/Y2anAYPcvU9Y3YGEdT7NLB34lFCHcCHwBPCru/8rrM4/CXU8r8wjlkLr56e0tp2St5UbtvDRT8t5f8pSpmatIy3FOKp9fc7tuRfdm9fUY1tEyiil3cqflIorIpJ4wjuTuZnZS8DVwcu3gKGFbK5TsM0FQf03gcG51hkAXF6C+iLUrZLBBQc154KDmjN/5R+8MeFn3pyYxcfTlrNPvSqc03MvTuzciErl9TVTRHaXEu8AZM86ZO86jLjmYP5+1D6MmbuK3g99xX9Gz2frjjyzqkREJH6WAYcG84cTSoMtyFKgnZnlpLUcAczKWWhm+wA1gLHFqS+Sl1Z1K3PTMe0Yd2Nv7j+5I2mpxs3vT6fHv7/k9g9msGDVH/EOUUQSiNJucylLqUO5U3FvO64dvfapG++wRETiLkHu+TwIeIxQltIWQo9amRQsW0xoQKBywFrgSHefaWaXELpauh1YAgx099VBnduBDHcfnGs/U9y9UzCfb/2ClKW2Uwrm7vz481peGruYT6YtZ3u2c3Dr2pzbsxmHt6lLqkbKFSm1SnzPp5mtL2wfwHJ337sY8SWkstiA5qTiLvxtI0e1r8ctx7ajcY2K8Q5LRCRuEqHzmUzKYtsphVu1YSuv//Azr4z/mV/Xb6FR9Qqc1aMpA7o1pWalcvEOT0SiLBqdz8nu3rmQnRS6TjIpqw3o1h3ZPPftIp74MjQq7hWHteLiQ1poVFwRKZPU+Syastp2SmR2ZO/ki1krePH7JYxduJpyaSkc27EB5/Vsxn5Nqsc7PBGJkmh0Plu4+8JCdlLoOsmkrDegS9du5u6PZ/LJtF9pVqsitx/fXqm4IlLmqPNZNGW97ZTIzV2xgZfHLuHdH7PYuC2b/RpX49yezTimYwMy0nXCWySZ6VErxaAGNOSbeau4bbhScUWkbFLns2jUdkpRbdiynXd/XMpLYxezYNVGalYqx+ndmnBuz71oUE2j8Isko0jazgJHuzWzNmY2wsw+NrOWZjbMzNaa2Q/Bw6+llDq4dWhU3H/03Yev5/5Gn4fHMGTUPI2KKyIiIiVWJSOd8w5oxhfXHcorF+1Pt2Y1eGbMAg65fzSD35nK4t82xjtEEYmBwtJuvwYeACoD9wL/BN4AjgWucffeeyLIPUlnb/9q2drN/EupuCJShujKZ9Go7ZRo+GXNJp79eiFvTPyFHdk7OW6/hlzWqxX71K8S79BEJAIlvvIJVHH3D939NWC7u7/uIR8SelZY1JnZ7Wa21MymBFO/sGU3mtl8M5tjZkeFlXc1s2nBssfNzILy8mb2RlA+3syaxSLm0q5h9Qo8eVZXXr6wOylmDHxhAoNemsgvazbFOzQREREpJZrUrMhdJ3Tg238cxsUHt+CLmSs46tGvGfTSRH76ZW28wxORKCis8xl+5/fDuZbFcozsR9y9UzB9AmBm7YABQHugL/CkmeXE9xQwCGgdTH2D8guB3929FfAIcF8MYy71wlNxv5n3G0c8MoYnvpzHlu1KxRUREZHoqFs1gxv7teW7wYdzde/WjF+0hv7/+Y5znhvPuIWr0XglIsmrsM7nf8ysMoC7P5lTaGatgC9iGVge+gOvu/tWd18EzAe6m1kDoKq7j/XQf6OXgBPC6rwYzL8N9M65KirFUz4tlct6teLL6w/l8DZ1eWjkXPo++jWj56yMd2giIiJSilSvWI5rj9ib7wYfzuCj2zBr+QYGPDuOU58ey+g5K9UJFUlCBXY+3f0Zd/8jj/L57n5NzKKCK8xsqpk9b2Y56b2NgF/C1skKyhoF87nLd6vj7juAdUCt3Dszs0FmNtHMJq5atSq6R1JK7ZaKm2Kcr1RcERERiYHK5dO45NCWfPvPw7jj+PYsW7uZ81+YwLFPfMsn05azc6c6oSLJorArn39hZj+WdKdm9oWZTc9j6k8ohbYl0AlYDjyUUy2PTXkB5QXV2b3A/Vl3z3T3zDp16hT1cMq0g1vX4dOrD+GffdvwzbzQqLhKxRUREZFoy0hP5bwDmvHV3w/j/lM6smlbNpe98iNHPDKGdyZlsT17Z7xDFJFCFLnzSd4duiJx9z7u3iGPabi7r3D3bHffCfwX6B5UywKahG2mMbAsKG+cR/ludcwsDagGrClp/LK7cmkpXNqrJV9efyh92tZTKq6IiIjETLm0FE7LbMIX1x3KE2d0Jj01hevf+onDHvyK/41bohPgIgmsOJ3Pj6MeRZjgHs4cJwLTg/kPgAHBCLbNCQ0s9IO7Lwc2mFmP4H7Oc4HhYXXOC+ZPAUa5bhCImYbVK/Cfs7rwvwv3VyquiIiIxFRqinHcfg0ZcfXBDD03k9qVy3Pz+9M55P7RDP1moTqhIgmowOd8/mVls6pAWs5rd4/6VUQze5lQyq0Di4G/BR1MzOwm4AJgB6HnjI4IyjOBYUAFYARwpbu7mWUALwOdCV3xHODuCwvav55VFh3bduzkuW8X8fiX89jpzhWHteLiQ1qQkZ5aeGURkTjTcz6LRm2nJAJ3Z+yC1QwZPZ/vF6ymYbUMrj1ib07q0pjUFI03KRJrkbSdEXU+zexvwJ3AZmAnodRbd/cW0Qg0kagBja5lazdz98ez+HjacvaqVZHbj2/PYfvUjXdYIiIFUuezaNR2SqL5fsFv3DdiNj9lrWPvepX5Z982HN6mLnrogUjsRNJ2Rpp2ewPQ3t2buXsLd29eGjueEn3hqbipQSruxUrFFRERkRg6oGVt3r/8QJ48qwvbs50LX5zI6c+O48eff493aCJlWqSdzwWAegtSbAe1rs2nVx/C4KPb8N380Ki4j2tUXBEREYkRM6Pfvg34/NpD+NcJHVi4aiMnPfk9l7w8iQWr/vIkQRHZAyJNu+0MvACMB7bmlLv7VbELLT6UOhR7y9dt5l8fz+LjqUEq7nHtOayNUnFFJHEo7bZo1HZKMti4dQfPfbuIZ8YsYMuOnZyW2YRr+rSmXtWMeIcmUipEM+32GWAUMA6YFDaJFFmDahX4z5mhVNy0FOP8YUrFFRERkdiqVD6Nq3q35ut/HMY5Pfbi7Um/cOgDo3nwszms37I93uGJlAmRXvn83t0P2APxxJ3O3u5Z23bs5PnvQqPiZu90Lj+sFYM0Kq6IxFlRrnyaWc0IVtvp7mtLFlXiUtspyejn1Zt4aOQchk9ZRo2K6VxxeGvO7tGU8mn6DiJSHNEc7fZuYAnwIbun3Ub9USvxpgY0PpSKKyKJpIidzy3AMkIjwecn1d2bRiW4BKS2U5LZ9KXruO/T2Xwz7zcaVa/ADUftTf/9GpGix7OIFEk0O5+L8ijWo1Yk6r6b/xu3Dp/OglUbOaJdPW49th1NalaMd1giUsYUsfM52d07l3SdZKa2U0qDb+f9xr2fzmL60vW0bVCVwUe34ZDWtfV4FpEIRa3zWZaoAY0/peKKSLwVsfOZ4e5bSrpOMlPbKaXFzp3OR9OW8+Bnc/h5zSYOaFmL/+vXlg6NqsU7NJGEF80Bh/LaeP3i1hUpSLm0FC45tCVfXn8ofdrV4+GRcznq0a8ZNXtFvEMTEfmLvDqVue8DLc0dT5HSJCXFOH6/hnxx3aHccXx75vy6geOHfMst709n3SYNSiRSUsXufALPRS0KkTzkjIr7ykWhUXEvGDaRi17UqLgikljM7EAzm2VmM8xsfzMbCUw0s1/MrGcJttvJzMaZ2RQzm2hm3YPyWmY22sz+MLMhueqcYWbTzGyqmX1qZrWD8qZBncnBsn757LNrUH++mT1uyjeUMqpcWgrnHdCMUTf04tyezXhl/BIOe+gr3pzwCzt3KmtQpLiK3fl092OiGYhIfg5sVZsRVx/CjUe34fsFv9Hn4TE89sU8tmzPjndoIiIAjwCnARcBHwN3BGMi9AceLMF27w+21Qm4NXgNsAW4BbghfGUzSwMeAw5z947AVOCKYPHNwJvBfacDgCfz2edTwCCgdTD1LUH8IkmvWoV0bj++PR9deTAtalfiH+9M5eSnv2f60nXxDk0kKRXY+TSzmgVNeypIkXJpKfwtSMU9ol09HvliLkc+olRcEUkI6e4+zd3HAqvc/VsAd/8RqFCC7TpQNZivRmhEXdx9Y7CP3Km8FkyVgiuWVXPq5Let3SqbNQCquvtYDw0I8RJwQgniFyk12jWsyluX9OShU/fjlzWbOE6puCLFklbI8kmEGqy80m4cKHWj3Upia1CtAkPO7MIZ3X/jtg9mcMGwifRpW4/bjtOouCISN+Encm/MtaxcCbZ7DfCZmT0Y7KPA5227+3YzuxSYBmwE5gGXB4tvBz43syuBSkCfPDbRCMgKe50VlOXJzAYRukpK06al9ikyIn8yM07u2pg+7erxyMi5vDR2MR9PW87gvm04pWtjPZpFJAIFXvl09+bu3iL4mXtSx1Pi5sBWtfnkqoOViisiieAWM6sI4O7v5xSaWUtCVw/zZWZfmNn0PKb+wKXAte7eBLiWQsZaMLP0oE5noCGhtNuczvAZwDB3bwz0A142s9zfAfI70Zwnd3/W3TPdPbNOnToFhSZSqoSn4rasE0rFPekppeKKRCLiez7N7HgzezCYjo1lUCKRUCquiCQCd//A3XcbCc3M6rv7Ane/P796Qd0+7t4hj2k4cB7wbrDqW0D3QkLpFGxzQZA2+ya7rpZeGLwmSA/OAGrnqp8FNA573Zg80nNFJKRdw6q8+beePHzafmT9HkrFvfn9aazdtC3eoYkkrIg6n2Z2L3A1MDOYrjaze2IZmEikclJxX71of8qlpQSj4k7QqLgiEk+fRGEby4BDg/nDCaXRFmQp0M7Mci5DHgHMCuZ/BnoDmFlbQp3PVeGV3X05sMHMegT3jJ4LDC/pQYiUZmbGSV0a8+X1vTivZzNeHf8zhz80hjcm/KxRcUXyYKGTo4WsZDYV6OTuO4PXqcDkYDS9UkUPyk5u23bs5IXvFvHYl/PI3ulc2qsllxzakoz01HiHJiJJJJIHZRdSf3IwsmxJYjiI0Oi1aYQGF7rM3ScFyxYTGkCoHLAWONLdZ5rZJYROFm8HlgAD3X21mbUD/gtUJpRK+w93/zzY1pRgRF3MLBMYRmigpBHAlR7BFwW1nSIhM5et57YPpjNh8e90alKdf53QgQ6NqsU7LJE9IpK2syidz17uviZ4XRP4Sp1PSVTL123m7o9n8dHU5TStWZHbjmtH77b14h2WiCSJKHQ+L3P3/B5nUuqo7RTZxd15b/JS/v3JbFZv3MpZ+zflhiP3oXrFkow/JpL4Imk7I73n8x5gspkNM7MXCY2C+++SBigSK7lTcS98MZSK+/NqpeKKSOyYWQ0z6wiMM7MuZtYl3jGJyJ6Vk4o76oZDGXjA7qm4kVz0ESnNIrryCX8+/6sbodHwxrv7r7EMLF509rb02bZjJ8O+X8SjX8xjx07nMqXiikghinPl08zuAgYCC9g1Sqy7++FRDi/hqO0UyV94Ku4BLWtx38kd9Xg4KZWilnYbbKwj0IywZ4O6+7v5VkhSakBLr1/XbeHuT2bx4U/LlIorIgUqZudzDrCvu5e5oS7VdooUzN157Ydf+Pcns9jpzj/7tuGcHnvp2aBSqkQt7dbMngeeB04GjgsmPW5Fkkr9ahk8cUZnXr1YqbgiEhPTgerxDkJEEo+Zceb+Tfns2kPIbFaT2z6YwYBnx7Hot43xDk1kj4p0wKGZ7t5uD8QTdzp7WzZsz97JsO8W8+gXc9muVFwRyaWYVz4zCT2aZDqwNafc3Y+PcngJR22nSOTcnbcmZXHXRzPZnr2TG47ch/MPbE6qroJKkouk7UwraGGYsWbWzt1nRiEukbhLT03h4kNacNx+Dbn7k1k8+sU83vkxi9uPa69UXBEprheB+4BpwM44xyIiCcrMOC2zCYe0rsNN703jXx/P4pNpy7n/lP1oVbdyvMMTialIR7t9kVAHdI6ZTTWzacHjV0SSWngqbvm0VC58cSIXDlMqrogUy2/u/ri7j3b3MTlTvIMSkcRUv1oGQ8/L5JHT92PBqo30e/wbnvpqATuyde5KSq9I027nA9eR62yuuy+JXWjxodShsit3Ku6lh7bk0l5KxRUpi4qZdvswoXTbD9g97fbHKIeXcNR2ipTMyg1buPX9GXw641f2a1yN+0/Zj33qV4l3WCJFErXRbs1sVFkYKh7UgEpoVNx/fzKLD35aRpOaFbjt2Pb0aadUXJGypJidz9F5FOtRKyISEXfn42nLuXX4DDZs2c5Vh7fmkl4tSU+NNFFRJL6iNtotMNvMXjWzM8zspJypBIGdamYzzGxnMEBD+LIbzWx+kOJ7VFh51yDdd76ZPW5mFpSXN7M3gvLxZtYsrM55ZjYvmM4rbrxSttSvlsHjQSpuRloqF72kVFwRKZy7H5bHVOo7niISHWbGsR0bMvLaQziqfX0eGjmX/kO+Y8aydfEOTSRqIu18ViCUQnQk0XnUynTgJODr8EIzawcMANoDfYEnzSwn5/EpYBDQOpj6BuUXAr+7eyvgEUKDPWBmNYHbgP2B7sBtZlajBDFLGXNAy9p8cvXB3NSvLeMWrqbPI2N4ZORctmzPjndoIpIkzKxLvGMQkeRSq3J5hpzZhafP7srKDVvpP+Q7Hv58Dtt26F5QSX4RdT7d/fw8pguKu1N3n+Xuc/JY1B943d23uvsiYD7Q3cwaAFXdfayH8oRfAk4Iq/NiMP820Du4KnoUMNLd17j778BIdnVYRSKSMyruqBt60bd9fR77ch5HPDKGL2auiHdoIpIcLo13ACKSnPp2qM8X1x3C8fs15PFR8znuiW+ZmrU23mGJlEiBnU8zG1TYBiJZpwgaAb+Evc4KyhoF87nLd6vj7juAdUCtArb1F2Y2yMwmmtnEVatWReEwpLSpVzWUivvaxT2UiisiEXP3i+Mdg4gkr+oVy/Hw6Z147rxM1m7exolPfs99n85WFpYkrcKe8znYzH4rYLkBVwPP/mWB2RdA/Tzq3OTuwwvYXm5eQHlx6+xe6P4swTFkZmYWPgKTlFk9W9bik6sP5sXvF/PIyLn0eWSMRsUVKeMKS60tC6Pdikhs9W5bj8+b1eTuj2fy1FcLGD17JY+f0Zm962lEXEkuhXU+xxC6v7MgI/MqdPc+xYgnC2gS9roxsCwob5xHeXidLDNLA6oBa4LyXrnqfFWMmER2k56awkUHt+C4/Rpy98ezeOzLebw7OUuj4oqUXQ8VsMwBDTokIiVWrUI695+yH0fv24C/v/UTxz3xLTcf05aze+xFMA6nSMKL6FErMdu52VfADe4+MXjdHniV0ABBDYEvgdbunm1mE4ArgfHAJ8AT7v6JmV0O7Ovul5jZAOAkdz8tGHBoEpBzRvpHoKu7rykoJg0XL0U1dsFqbh0+nXkr/+DwNnW57bh27FWrUrzDEpESKM6jVsoytZ0ie9aqDVu54a2fGDN3FX3a1uP+UzpSs1K5eIclZVw0H7USVWZ2opllAT2Bj83sMwB3nwG8CcwEPgUud/ecpPZLgaGEBiFaAIwIyp8DapnZfOA6YHCwrTXAXcCEYLqzsI6nSHHkpOLefExbxi9czRGPfM3DGhVXpMwxs3Qzu8rM3g6mK8wsPd5xiUjpU6dKeV4Y2I1bjm3H13NX0ffRr/lufkF3yokkhrhe+UxEOnsrJbFi/Rb+/ckshk9ZRuMaFbjtuPb0aVtX6TAiSaY4Vz7NbCiQzq4R2M8Bst39omjHl2jUdorEz4xl67jqtcks/G0jfzukJdcdsTfl0uJyfUnKuIS98ilSWtWrmsFjA0Kj4lYsl8rFL03kwhcnsmT1xniHJiKx183dz3P3UcF0PtAt3kGJSOnWvmE1PrryYAZ0a8rTYxZwytPfs+g3fe+QxBRR59PMypvZmWb2f2Z2a84U6+BEklXPlrX4+KpQKu4Pi9YoFVekbMg2s5Y5L8ysBaA/ehGJuQrlUrnnpH15+uwuLFm9iWMe/4a3Jv6CMhwl0UR65XM40B/YAWwMm0QkHzmj4n55/aEc3aE+j385jz4Pj2HkzBVqDERKp78Do83sKzMbA4wCro9zTCJShvTt0IBPrzmYjo2r8fe3p3Lla5NZt3l7vMMS+VNE93ya2XR377AH4ok73bcisTJuYWhU3Lkr/uCwfepw+/HtNSquSIIq7mi3ZlYe2IfQs6Znu/vWqAeXgNR2iiSW7J3O02MW8PDIudSvmsFjAzqR2axmvMOSUi6a93x+b2b7RiEmkTKrR4tdqbgTFv8eSsX9fA6btykrT6Q0MLNU4ChCz5juDVxuZteVYHudzGycmU0xs4lm1j0or2Vmo83sDzMbkqvOGWY2zcymmtmnZlY7KG8a1JkcLOuXx/4qmtnHZjbbzGaY2b3FjV1E4is1xbj8sFa8fUlPUlOM054Zy6NfzGVH9s54hyZlXKSdz4OASWY2J2i0ppnZ1FgGJlIa/SUVd9R8jnhkDJ/P+FWpuCLJ70NgIFALqBI2Fdf9wB3u3gm4NXgNsAW4BbghfGUzSwMeAw5z947AVOCKYPHNwJvu3hkYADyZzz4fdPc2QGfgQDM7ugTxi0icdW5ag4+vOogTOjXi0S/mMeDZcWT9vineYUkZlhbhemp8RKIoZ1TcM7o35dbh0xn08iQO26cOtx3Xnma1lYorkqQaB52+aHGgajBfDVgG4O4bgW/NrFWu9S2YKpnZ6qDu/IK2tdvO3DcBo4P5bWb2I9A4akcjInFRJSOdh0/vxCF71+Hm96dz9GPfcM9J+3Jsx4bxDk3KoIiufLr7EqA6cFwwVQ/KRKQEcqfiHqlUXJFkNsLMjozi9q4BHjCzX4AHgRsLWtndtwOXAtMIdS7bAc8Fi28HzjazLOAT4MqCtmVm1Qm1918WO3oRSSgndG7EJ1cdTMs6lbni1cn8/a2f2Lh1R7zDkjIm0ketXA28AtQNpv+ZWYENl4hEJicVd9T1h9Jv31Aqbp+HlYorkoTGAe+Z2WYzW29mG8xsfUEVzOwLM5uex9SfUEfyWndvAlzLro5kfttKD+p0BhoSSrvN6bCeAQxz98ZAP+BlM8vzO0CQvvsa8Li7Lyxgf4OCe1Enrlq1qqDQRCRBNK1Vkbcu6cmVh7fi7R+zOPaJb5m1vMB/UyJRFelot1OBnkGqD2ZWCRgb5fSihKAR+yTexi1czW3DZzBnxQal4orESXFGuzWzhcAJwDSPwpkjM1tHKNPIzcyAde5eNWz5QCDT3a8IXncD7nX33sHrQ4DB7t7PzGYAfd39l7BYe7j7yjz2+zzwh7tfFWmsajtFks+4hau56rXJrN+ynXtO2pcTOyvLXkommqPdGrs/KDs7KBORKOvRohYfXXUQtxzbTqm4IsllHjA9Gh3PwDLg0GD+8GD7BVkKtDOzOsHrI4BZwfzPhEbgxczaAhnAXy5Xmtm/CN0Tek1JAheRxJfzfaNj4+pc+8ZP3Dp8Ott2aDRcia1IBxx6ARhvZu8Fr0+gkPQfESm+9NQULjyoOcd1bMC/P5nF46Pm886PS7ntuHYc0a4eoYsgIpJglgNfmdkI4M/ne7r7w8Xc3sXAY0Ea7BZgUM4CM1tMaAChcmZ2AnCku880szuAr81sO7CE0Oi7ANcD/zWzawkNPjQwp5NsZlPcvZOZNQZuAmYDPwb/Z4a4+9Bixi8iCa5ulQxeuWh/7v90Nv/9ZhHTlq7jybO60KBahXiHJqVURGm3AGbWhdAjVwz42t0nxzKweFHqkCSi8FTcXvvU4Xal4orEVDHTbm/Lq9zd74hOVIlLbadI8vt46nL+/vZPVEhP5YkzO3NAy9rxDkmSTCRtZ4GdTzOr6u7rzaxmXsvdfU0JY0w4akAlUW3P3slLY5fwyMi5bNuxk78d2oLLerWiQrnUeIcmUuoUp/NZlqntFCkd5q/cwN9ensSi3zbyj75t+NshLZRtJRGLxj2frwY/JwETw6ac1yKyh+Sk4o66/lCO6diAJ4JRcT/TqLgicWVmt0djHRGReGtVtwrDrziIvh3qc++I2Vz6vx/ZsGV7vMOSUiTitNuyQmdvJVmMX7iaW5WKKxITRbnyGTw7s6D7Og242N3bRCW4BKS2U6R0cXee+3YR94yYzV41K/L0OV3Zu16VeIclCS5qo92a2V8eMp1XmYjsOfuHjYo7MRgV9yGNiisSD/8FqhQwVQ7WERFJCmbGRQe34JWL9mf9lh30H/IdH/y0LN5hSSlQ4Gi3ZpYBVARqm1kNdj1epSqhB1iLSByFj4p7z4jZPDFqPu/+uJRbj2vHkRoVV2SPKAsDColI2dSjRS0+vuogLnvlR656bTKTf/6d/+vXlvTUSJ/WKLK7wj45fyN0f2eb4GfONBz4T2xDE5FI1a2awSOnd+KNQT2okpHG316exPnDJrD4t43xDk1ERESSWL2qGbx2cQ8GHtCMF75bzBnPjmPl+i3xDkuSVIGdT3d/zN2bAze4ewt3bx5M+7n7kD0Uo4hEaP8WtfjoyoO4Vam4IiIiEiXl0lK4/fj2PDagEzOWraff498yfuHqeIclSSiia+bu/oSZdTCz08zs3Jwp1sGJSNGlpaZwgUbFFRERkSjr36kR719+IFUy0jhz6HiGfrNQ3y2kSCIdcOg24IlgOgy4Hzg+hnGJSAnllYo78IUJLFIqrkhMmFkdM/s/M3vWzJ7PmeIdl4hINO1TvwrDrziQPm3r8q+PZ3HFq5P5Y+uOeIclSSLSu4VPAXoDv7r7+cB+QPmYRSUiUROeivvjkt856pGvefAzpeKKxMBwoBrwBfBx2CQiUqpUzUjn6bO7MvjoNoyYvpwT/vMd81f+Ee+wJAlE2vnc7O47gR1mVhVYCbSIXVgiEk05qbhf3nAox3ZswJDRoVTcT6crFVckiiq6+z/d/U13fydnindQIiKxYGZccmhL/nfh/vy+cRsnPvkdX89dFe+wJMFF2vmcaGbVCT2nbBLwI/BDrIISkdioWyWDh0/vxJt/60mVjDQu+Z9ScUWi6CMz6xfvIERE9qQDWtVm+BUH0qh6Bc4fNoGXxi6Od0iSwKywqx4WelBgY3f/JXjdDKjq7lNjH96el5mZ6RMnTox3GCIxtyN7Jy+NXcIjI+eydcdOBh3SgssPa0WFcqnxDk0k7sxskrtnFrHOBqASsA3YHhS7u1eNdnyJRm2niPyxdQdXvzaZL2ev5Nyee3Hrse1I0/NAy5RI2s5CPxEe6p2+H/Z6cUk7nmZ2qpnNMLOdZpYZVt7MzDab2ZRgejpsWVczm2Zm883s8aBTjJmVN7M3gvLxQec4p855ZjYvmM4rScwipY1ScUWiy92ruHuKu2cE81XKQsdTRASgcvk0nj03k4sPbs5LY5dw/rAJrNu8vfCKUqZEejpinJl1i+J+pwMnAV/nsWyBu3cKpkvCyp8CBgGtg6lvUH4h8Lu7twIeAe4DMLOawG3A/kB34DYzqxHFYxApFfJKxT1PqbgixWJmx5vZg8F0bLzjERHZk1JTjJuOacd9J+/L2AWrOenJ71iyWt8nZJdIO5+HAWPNbIGZTQ2uQBb76qe7z3L3OZGub2YNCKX6jg2uxL4EnBAs7g+8GMy/DfQOrooeBYx09zXu/jswkl0dVhHJpXvzmn+Oijs5GBX3gc9ms2mbhk8XiYSZ3QtcDcwMpquDMhGRMuX0bk15+cL9Wb1xGyf85zvGL1wd75AkQUTa+TwaaAkcDhwHHBv8jIXmZjbZzMaY2cFBWSMgK2ydrKAsZ9kvAO6+A1gH1Aovz6OOiOQhdyruf0Yv4IiHv+bT6cuViitSuH7AEe7+vLs/T+iEpwYgEpEyqWfLWrx/2YHUqFSOs58bz5sTfym8kpR6kXY+/+XuS8In4F8FVTCzL8xseh5T/wKqLQeauntn4Drg1eDRLpbHujnfhPNbVlCd3LEOMrOJZjZx1SoNES3y11TcHznvhQksXKVneIkUonrYfLV4BSEikgia1a7Ee5ceyP7Na/GPt6dyzyezyN6pk9llWaSdz/bhL8wsFehaUAV37+PuHfKYhhdQZ6u7rw7mJwELgL0JXbVsHLZqY2BZMJ8FNAniSiPU2K8JL8+jTu79Puvume6eWadOnYIOS6RMyUnFve24UCpu30e/USquSP7uASab2TAze5HQo8n+HeeYRETiqlrFdF44vxtn92jKM18v5G8vT2LjVn2PKKsK7Hya2Y3B0PEdzWx9MG0AVgL5diKLy8zqBB1bzKwFoYGFFrr7cmCDmfUI7uc8N2z/HwA5I9meAowK7gv9DDjSzGoEAw0dGZSJSBGkpaZw/oFBKu5+oVTcPg+NUSquSC7u/hrQA3g3mHq6++vxjUpEJP7SU1O4q38Hbj+uHaNmr+CUp8eydO3meIclcVBg59Pd73H3KsAD7l41mKq4ey13v7G4OzWzE80sC+gJfGxmOZ3CQ4CpZvYTocGDLnH3NcGyS4GhwHxCV0RHBOXPAbXMbD6hVN3BQexrgLuACcF0Z9i2RKSI6lbJ4OHTOvHWJT2pWiFdqbgiATNrE/zsAjQglHnzC9AwKBMRKfPMjIEHNuf5gd3IWrOJ/kO+Y/LPv8c7LNnDLNIrF2bWCNgLSMspc/e8HpWS1PSgbJHC7cjeyf/GLeGhz+eydcdOLj6kOZcf1oqK5dIKryySBCJ5UHbYus+6+yAzG53HYnf3w6McXsJR2ykiRTFvxQYueHECK9Zv5cFT9+P4/RrGOySJgkjazog6n8FQ8QMIDR2fHRS7ux9f4igTjBpQkcit2rCVe0bM4t0fl9KwWga3HteOo9rXJ5QdL5K8itL5DKuT4e5bCisrjdR2ikhRrf5jK5f8bxITFv/OVb1bc22f1vr+kOQiaTsjHXDoRGAfd+/n7scFU6nreIpI0dSpUv4vqbjnPv+DUnGlrPo+wrKImFknMxtnZlOCEdm7B+W1zGy0mf1hZkNy1Tkj51ncZvapmdUOypsGdSYHywp8BIyZfWBm04sbu4hIYWpVLs//Ltqfk7s05vEv53HFa5PZsj278IqS1CLtfC4E0mMZiIgkr27NQqPi3n5cO6b8vJajHv2a+z/VqLhSNphZfTPrClQws85m1iWYegEVS7Dp+4E73L0TcGvwGmALcAtwQ6440oDHgMPcvSMwFbgiWHwz8GbwKLMBwJMFHM9JgM4giUjMlU9L5cFTOzL46DZ8Mm05pz8zlpXrS32ySJkW6Q1am4ApZvYlsDWn0N2viklUIpJ00lJTGHhgc47p2JB7R8zmya8W8P7kpdxybDv6dlAqrpRqRwEDCT3S6+Gw8g3A/5Vguw5UDearETwuzN03At+aWatc61swVTKz1UHd+QVtKzczq0xo8L5BwJsliF1EJCJmxiWHtqR57Upc8/oU+v/nO4ad35196leJd2gSA5He83leXuXu/mLUI4oz3bciEh0TF6/hluEzmLV8PQe3rs0dx7enRZ3K8Q5LJCLFvOfzZHd/J4oxtCX0iDAjlKl0gLsvCVs+EMh09yvCyk4Bngc2AvMIXQXNNrMGwOdADaAS0Cd4nnbufT4CfA1MBj5y9w4FxDeIUCeVpk2bdl2yZEl+q4qIRGTGsnWc/8IEtmzPZuh53ejevGa8Q5IiiNqAQ8HGKgBN3X1ONIJLVOp8ikTPn6PijpzLlu3ZXHxwC644XKPiSuIrTuczqHcM0B7IyClz9zsLWP8LoH4ei24CegNj3P0dMzsNGOTufcLqDiSs82lm6cCnhDqEC4EngF/d/V9mdh2hNv8hM+tJ6DFlHdx9Z9j2OgF3uftxZtaMQjqf4dR2iki0ZP2+iXOf/4Gs3zfz+IDO9O2Q179ISURRG3DIzI4DphBq1HIGQfigxBGKSKmWk4o76vpeHL9fI578agF9HhrDiGnLifTEl0iyMLOngdOBKwldrTyV0CPK8uXufdy9Qx7TcOA84N1g1beA7oWE0CnY5gIP/YG9CRwQLLsweI27jyXUOa6dq35PoKuZLQa+BfY2s68K2aeISFQ1rlGRdy45gPYNq3LZK5P43zhlVZQmkQ44dDuhRm8tgLtPAZrHJCIRKXXqVCnPQ6ftx9uX9KRaxXJc+opGxZVS6QB3Pxf43d3vINSZa1KC7S0DDg3mDyeURluQpUA7M6sTvD4CmBXM/0zoSmpOOm8GsCq8srs/5e4N3b0ZcBAw1917lSB+EZFiqVGpHK9ctD+99qnLze9P5+GRc3XSupSItPO5w93X5SrTJ0BEiiSzWU0+vOJA7ji+PVN+0ai4UurkDNG4ycwaAtsp2Ynai4GHzOwn4N8E91cCBFcnHwYGmlmWmbVz92XAHcDXZjaV0JXQfwdVrgcuDrb1GjAwuDqKmU0pQYwiIjFRsVwaz57TldMyQ49iufHdaezI3ll4RUlokd54Nd3MzgRSzaw1cBUleHaZiJRdaakpnHdAM/rt24D7PtWouFKqfGhm1YEHgB8JnaT9b3E35u7fAl3zWdYsn/KngafzKJ8JHJhPnU55lC0GIrrfU0QkVtJSU7jv5I7UrZLBkNHz+e2PbTxxRmcqlEuNd2hSTJFe+byS0AAKW4FXgXXANTGKSUTKgDpVyvPgqX9NxV2gVFxJQmaWAnzp7muDEW/3Atq4+61xDk1EJKmZGTcctQ939m/Pl7NXcPZz41m7aVu8w5Jiiqjz6e6b3P0md+8WTDe7u54AKyIlljsVt++jX3OfUnElyQSjxj4U9nprHreriIhIMZ3bsxn/ObML07LWccrTY1m6dnO8Q5JiiHS025FBKlHO6xpm9lnMohKRMiUnFXfU9b3o36kRT321gN4PjeETjYoryeVzMzvZlDsuIhIT/fZtwEsXdmfFui2c/OT3zPl1Q7xDkiKKNO22truvzXnh7r8DdWMSkYiUWTmpuO9c2pMaFctxmVJxJblcR+iRKFvNbL2ZbTCz9fEOSkSkNOnRohZvXtITxznl6e8Zv3B1vEOSIoi087nTzJrmvDCzvdBotyISI133qskHSsWVJOPuVdw9xd3LuXvV4HXVeMclIlLatG1QlXcuPYC6VcpzzvM/8On05fEOSSIUaefzJuBbM3vZzF4GvgZujF1YIlLW5aTijr5BqbiSHMzsy0jKRESk5BrXqMjblxxA+4ZVufSVH3l53JJ4hyQRiHTAoU+BLsAbwJtAV3fXPZ8iEnO1K/81Ffec535g/kql4kpiMLMMM6sJ1A7GRKgZTM2AhnEOT0Sk1KpRqRyvXtSDw/epyy3vT+fhz+foBHWCi/TKJ0B5YA2hx6y0M7NDYhOSiMhfdd2rJh9eeRB39m/PT1lrOfqxr7l3xGw2blUqrsTd34BJQJvgZ840HPhPHOMSESn1KpRL5ZlzunJaZmMeHzWfwe9MY0f2zniHJflIi2QlM7sPOB2YAeS8m04o/VZEZI9ITTHO7dmMfvs24N4Rs3l6zAKGT1nKzce0o9++9dEgoxIP7v4Y8JiZXenuT8Q7HhGRsiYtNYX7Tu5IvaoZPDFqPqs3buWJM7pQoVxqvEOTXCySS9NmNgfo6O5bYx9SfGVmZvrEiRPjHYaIRGDSkjXc8v4MZi5fz0GtanP78e1pVbdyvMOSUsDMJrl7ZjHqHQA0I+zkrru/FMXQEpLaThFJFC+PXcytH8ygc5PqPHdeN2pUKhfvkMqMSNrOSNNuFwLpJQ9JRCR6lIoriSQYkO9B4CCgWzAVuQMrIiLFd07PZjx5ZhemL1vP6c+OZeWGLfEOScJElHYLbAKmBKP2/Xn1092viklUIiIRCk/FvU+puBJfmUA712gXIiJxdfS+DahWMZ2LXpzI6c+M45WL9qdh9QrxDkuI/MrnB8BdwPfsPpiCiEhCqF25PA+cuh/vXHoANSqW4/JXNSqu7HHTgfrxDkJEROCAlrV5+cLu/LZhK6c+PZafV2+Kd0hChPd8AphZOWDv4OUcd98es6jiSPetiCS/7J3Oq+OX8MBnc9i8PZsLD2rBlYe3olL5SJM9pKwrzj2fZjYa6AT8wO5ZQsdHN7rEo7ZTRBLVtKx1nPP8eMqnpfDKRT00NkQMRdJ2RjrgUC/gRWAxYEAT4Dx3L3Wj3aoBFSk9fvtjK/d/Ops3J2bRoFqGUnElYsXsfB6aV7m7j4lOVIlLbaeIJLLZv67n7KE/4O7876L9adugarxDKpWiOeDQQ8CR7n6oux8CHAU8UtIARURiqXbl8tx/yu6puGc/N16puBITQSdzMZAezE8AfoxrUCIiQpv6VXnjbz1IT01hwLPjmJq1Nt4hlVmRdj7T3X1Ozgt3n4tGvxWRJNF1rxp8eOVB3NW/PdOy1nH0Y19zz4hZGhVXosrMLgbeBp4JihoB78ctIBER+VPLOpV565KeVMlI46z/jmfi4jXxDqlMirTzOdHMnjOzXsH0X0ow4JCZPWBms81sqpm9Z2bVw5bdaGbzzWyOmR0VVt7VzKYFyx63IG/OzMqb2RtB+XgzaxZW5zwzmxdM5xU3XhFJfqkpxjk9mzHqhl6c2LkRz4xZSO+HxvDR1GVocFKJksuBA4H1AO4+D6gb14hERORPTWpW5K1LelKnSnnOee4Hvpv/W7xDKnMi7XxeCswArgKuBmYCl5RgvyOBDu7eEZgL3AhgZu2AAUB7oC/wpJmlBnWeAgYBrYOpb1B+IfC7u7cilAp8X7CtmsBtwP5Ad+A2M6tRgphFpBQIT8WtVbkcV7w6OUjF3RDv0CT5bXX3bTkvzCwN0JkNEZEE0qBaBd74W0+a1qzI+cMmMGr2iniHVKZE2vlMAx5z95Pc/UTgcSC1kDr5cvfP3T0n320c0DiY7w+87u5b3X0RMB/obmYNgKruPjZ4ftpLwAlhdV4M5t8GegdXRY8CRrr7Gnf/nVCHN6fDKiJlXNe9avDBFbtScfs++o1ScaWkxpjZ/wEVzOwI4C3gwzjHJCIiudSpUp7XB/Vgn3pV+NvLkxgxbXm8QyozIu18fgmEP5m1AvBFlGK4ABgRzDcCfglblhWUNQrmc5fvVifo0K4DahWwrb8ws0FmNtHMJq5atapEByMiySMnFXf0Db04qYtScaXEBgOrgGnA34BPgJvjGpGIiOSpRqVyvHLx/nRsXJ3LX/2R9yZnFV5JSizSzmeGu/85PGQwX7GgCmb2hZlNz2PqH7bOTcAO4JWcojw25QWUF7fO7oXuz7p7prtn1qlTJ79DEpFSqpZScSU6KgDPu/up7n4K8Dy7n7gVEZEEUjUjnZcu6M7+zWtx3Zs/8doPP8c7pFIv0s7nRjPrkvPCzLoCmwuq4O593L1DHtPwYBvnAccCZ/muSwxZhJ4hmqMxsCwob5xH+W51gvtrqgFrCtiWiEie/kzFPaGDUnGlOGKZJSQiIjFQqXwaL5zfjUP3rsON707j+W8XxTukUi3Szuc1wFtm9o2ZfQO8AVxR3J2aWV/gn8Dx7r4pbNEHwIBgBNvmhAYW+sHdlwMbzKxHcD/nucDwsDo5I9meAowKOrOfAUeaWY1goKEjgzIRkXylphjn9NiL0Tf04uQujZWKK0VR5CyhgphZJzMbZ2ZTgltDugfltcxstJn9YWZDctU5IxgZfqqZfWpmtYPypkGdycGyfvnss5yZPWtmc4NR6U8ubvwiIskiIz2VZ87pylHt63HnRzP5z+j58Q6p1Iqo8+nuE4A2hEa9vQxo6+7FftQKMASoAowMGtWng/3MAN4kNJrup8Dl7p4d1LkUGEpoEKIF7LpP9DmglpnNB64jdM8N7r4GuIvQQ74nAHcGZSIihapVuTz3ndJxt1Tcs4YqFVcKVOQsoULcD9zh7p2AW4PXAFuAW4AbwlcOsn8eAw4LRpOfyq4TxTcDb7p7Z0Kjyj+Zzz5vAla6+95AO2BMCeIXEUka5dNS+c+ZXejfqSEPfDaHhz6fo5POMZAW6Yruvh2YHo2dBo9FyW/Z3cDdeZRPBDrkUb4FODWfbT1P6J4bEZFiyUnFffWHn3ng09n0ffQbLjyoOVf2bk3l8hH/C5Wy4RpCWUI5t3g0AE4vwfYcqBrMVyO4dcTdNwLfmlnuttSCqZKZrQ7qzi9oW3m4gNDJZtx9J6CH4IlImZGWmsLDp3WiQnoqT4yaz+Zt2dx0TFtCiZcSDfrmJCJSiJxU3H4d6nP/p3N45uuFvD9lKTcf045jOzZQoyRAKEvIzNoA+xDqBM4OTtwW1zXAZ2b2IKFMpQMK2f92M7uU0Gi7G4F5wOXB4tuBz83sSqAS0Cd3fTOrHszeZWa9CGUZXeHueT4Ez8wGEXr+Nk2bNo38qEREElhqivHvE/clIz2Vod8uYvP2bO7q34GUFLX10RDpPZ8iImVeTiruu5cdQJ0q5bnytVAq7rwVSsWVP3UDOgKdgTPM7NyCVi5kZPhLgWvdvQlwLaHbTAraVnpQpzPQkFDa7Y3B4jOAYe7eGOgHvGxmub8DpBEanO87d+8CjAUezG9/GileREqrlBTjtuPaccmhLXll/M/8/e2pZO9UCm40RHTlMxjk5yyghbvfaWZNgfru/kNMoxMRSUBdmtZg+OWhVNwHP5vD0Y8pFVfAzF4GWgJTgJzxChx4Kb867v6XK5Bh23sJuDp4+RahcQ8K0inY5oKg/psE4yAAFwJ9g+VjzSwDqA2sDKu/GtgEvBe2zwsL2aeISKlkZvyz7z5ULJfKwyPnAvDAKR11BbSEIv2W9CSwEzgcuBPYALxD6AyviEiZo1RcyUMm0M6jN0LFMuBQ4CtC7e+8QtZfCrQzszruvgo4ApgVLPsZ6A0MM7O2QAawKryyu7uZfQj0AkYF68+MypGIiCQhM+Oq3q0BeHjkXNJSjHtO2lcd0BKItPO5v7t3MbPJAO7+u5mVi2FcIiJJIScV9/TuTbh1+HSufG0yr/3wM3cc357W9arEOzzZs6YD9YHlUdrexcBjwSi2WwjurwQws8WEBhAqZ2YnAEe6+0wzuwP42sy2A0uAgUGV64H/mtm1hK7GDszpJJvZlGBEXQg9Bu1lM3uUUOf0/Cgdi4hI0rqqd2t2ZO/k8VHzSU017j6hg04yF1Oknc/tZpZKqMHCzOoQuhIqIiLsSsV97YefeSBIxb3goOZcpVTcsqQ2MNPMfgC25hS6+/HF2Zi7fwt0zWdZs3zKnwaezqN8JnBgPnU6hc0vAQ4perQiIqXbtUfszfadzlNfLSAtxbjj+PbqgBZDpN+IHid0D0hdM7sbOIXQM8NERCSQmmKc3WMvjg5ScZ/9eiHDpyzlpmPacZxSccuC2+MdgIiIxIaZ8Y+j9mFH9k7++80i0lJSuOVYPYalqCLqfLr7K2Y2idD9Hwac4O6zCqkmIlIm5U7Fveq1ybw2/mfu7K9U3NLM3ceYWT12jYfwg7uvLKiOiIgkDzPj//q1ZcdO5/nvFpGeagw+uo06oEUQ0aNWzKwHsNTd/+PuQ4AsM9s/tqGJiCS3nFTcf53QgZnL13P0Y9/w709m8cfWHfEOTWLAzE4DfgBOBU4DxpvZKfGNSkREosnMuPXYdpzTYy+e+XohD34+h+iNM1f6RZp2+xTQJez1xjzKREQkl5xU3H77NuD+T2crFbd0uwnolnO1Mxgf4Qvg7bhGJSIiUWUWuudzx07nP6MXkJaSwrVH7B3vsJJCRFc+AQsfOt7ddxJ5x1VEpMyrWakc957ckfcuO4C6VTK46rXJnPnf8cxbsSHeoUn0pORKs11N5O2siIgkkZSU0Ki3p2U25rEv5zFkVGFPwxKIvFFcaGZXmVl6MF0NLIxlYCIipVHnpjV4//IDuftEpeKWQp+a2WdmNtDMBgIfAyPiHJOIiMRISopxz0kdOalzIx78fC5Pj1kQ75ASXqSdz0uAAwg9wDoL2J+w542JiEjkUlOMs/bfi9E39OLUzMb895uF9H7oKz74aZnuG0li7v534BmgI7Af8Ky7/yO+UYmISCylphgPnLofx+/XkHtHzGboN7o+V5BIR7tdCQyIcSwiImVKzUrluOekjpyW2YRbh8/4c1TcO/q3Z2+Nips0zKwVUM/dv3P3d4F3g/JDzKylu+tUuIhIKZaaYjx82n5k73T+9fEs0lKMgQc2j3dYCSnS0W4zzOxyM3vSzJ7PmWIdnIhIWZA7FbffY99w98czlYqbPB4F8rp5d1OwTERESrm01BQeHdCJo9rX4/YPZ/K/cUviHVJCijTt9mWgPnAUMAZoTN4NrYiIFEPuVNyh3y6i90NfMXzKUqXiJr5m7j41d6G7TwSa7flwREQkHtJTU3jijC70aVuXm9+fzus//BzvkBJOpJ3PVu5+C7DR3V8EjgH2jV1YIiJlU04q7nuXHUi9qhlc/foUzvjvOOZqVNxEllHAsgp7LAoREYm7cmkp/OesLvTapw43vjeNtyb+Eu+QEkqknc/twc+1ZtYBqIbO5oqIxEynJtV577JQKu7sXzcoFTexTTCzi3MXmtmFwKQ4xCMiInFUPi2Vp8/uykGtavOPd6by3uSseIeUMCJ9VuezZlYDuBn4AKgM3BKzqERE5M9U3KM7NOCBz2Yz9NtFDJ+yjJuOacvx+zXEzOIdooRcA7xnZmexq7OZCZQDToxXUCIiEj8Z6an899xMLhg2gevf/InUlBSO369hvMOKuwKvfAbP8wSY5e6/u/vX7t7C3eu6+zN7ID4RkTIvPBW3fjWl4iYad1/h7gcAdwCLg+kOd+/p7r/GMzYREYmfjPRUhp6XSWazmlz7xhQ+mbY83iHFXWFpt+cHP5+IdSAiIlKwnFTcf5+4r1JxE5C7j3b3J4JpVLzjERGR+KtYLo0XBnajc5PqXPXaZD6fUbbPSRbW+ZxlZouBNmY2NWyaZmZ/GdlPRERiKzXFOHP/poy+vhenZjZh6LeLOPxBjYorIiKSqCqVT+OF87vRoVE1rnh1Mt8v+C3eIcVNgZ1Pdz8D6AHMA44Lm44NfoqISBzUqFSOe07ad7dU3AHPKhVXREQkEVXJSGfY+d1oXrsSF784kalZa+MdUlxEMtrtKmCauy/JPcU6OBERKVh4Ku6cFRs4+rFv+NdHM9mwZXvhlUVERGSPqV6xHC9d2J2alctx3vM/MH9l2TthXGjn092zgdpmVm4PxCMiIkUUnop7WmYTnvtuEb0fGqNUXBERkQRTr2oGL1+wP6kpKZzz3A8sXbs53iHtUZE+53MJ8J2Z3WJm1+VMsQxMRESKJicV9/1cqbhzfi17Z1ZFREQSVbPalXj5wu78sXUH5wwdz29/bI13SHtMpJ3PZcBHwfpVwiYREUkw++VKxe33uFJxRUREEknbBlV5YWA3lq3bzMAXfigzbXREnU93vyOvqbg7NbMHzGx2MHLue2ZWPShvZmabzWxKMD0dVqdrMMrufDN73IKnq5tZeTN7Iygfb2bNwuqcZ2bzgum84sYrIpJslIorIiKS2DKb1eSps7sye/kGLnpxIlu2Z8c7pJiLqPNpZqPNbFTuqQT7HQl0cPeOwFzgxrBlC9y9UzBdElb+FDAIaB1MfYPyC4Hf3b0V8AhwXxBzTeA2YH+gO3CbmdUoQcwiIkknPBW3gVJxRUREEsph+9TlodP244fFa7ji1cnsyN4Z75BiKtK02xuAvwfTLcAUYGJxd+run7t7zlPRxwGNC1rfzBoAVd19rIdO2b8EnBAs7g+8GMy/DfQOrooeBYx09zXu/juhDm9fRETKoJxU3HtO2pWKe5dScROamXUys3FBJtBEM+selNcKTgr/YWZDctU5I+dZ3Gb2qZnVDsqbBnUmB8v65bPPPOuLiEjs9O/UiDv7d+CLWSv4xztT2bmz9GYoRZp2Oyls+s7dryN0RTEaLgBGhL1uHjSOY8zs4KCsEZAVtk5WUJaz7Jcgzh3AOqBWeHkedXZjZoOChn3iqlWrSno8IiIJKSXFOKN7KBX39G5NeP67RRz+0Bjen6xU3AR1P3CHu3cCbg1eA2whdCL4hvCVzSwNeAw4LMgsmgpcESy+GXjT3TsDA4Anc++skPoiIhJD5/TYi+uP2Jt3f1zKXR/PLLXtcqRptzXDptpmdhRQv5A6X5jZ9Dym/mHr3ATsAF4JipYDTYPG8TrgVTOrClgeu8h5R/JbVlCd3Qvdn3X3THfPrFOnTkGHJSKS9GpUKse/Twyl4jaslsE1b0zhdKXiJiIHqgbz1QgN/oe7b3T3bwl1QsNZMFUKMoCq5tTJb1tFqC8iIjF2xeGtuODA5rzw3WKeGDU/3uHERFqE601iV4duB7CI0L2W+XL3PgUtDwYAOhboHaTS4u5bga3B/CQzWwDsTeiqZXhqbmN2NYhZQBMgKzhrWw1YE5T3ylXnq4IPU0Sk7MhJxX1j4i/c9+ls+j3+DQMPaMY1fVpTJSM93uEJXAN8ZmYPEjpZfEBBK7v7djO7FJgGbATmAZcHi28HPjezK4FKwF/a6ELq/4WZDSI0FgNNmzYtynGJiEgezIybj2nLus3beXjkXGpUTOecns3iHVZURZp229zdWwQ/W7v7kcFZ12Ixs77AP4Hj3X1TWHkdM0sN5lsQGlhoobsvBzaYWY/gbOy5wPCg2gdAzki2pwCjgs7sZ8CRZlYjGGjoyKBMREQCSsWNr0KyhC4FrnX3JsC1wHOFbCs9qNMZaEgobTZnQL8zgGHu3hjoB7xsZilFqP8XyhoSEYm+lBTjvpP3pU/betz6wQyGT1ka75CiqsDOp5l1M7P6Ya/PNbPhwaNOapZgv0MIPSd0ZK5HqhwCTDWznwgNHnSJu68Jll0KDAXmAwvYdZ/oc0AtM5tPKFV3MEBQ7y5gQjDdGbYtEREJk5OKO/xypeLuSe7ex9075DENJ3Ri9d1g1bcIjdxekE7BNhcEJ2HfZNfV0guD17j7WCADyD2YUEH1RURkD0lLTWHImZ3p3qwm17/5E6Nnr4x3SFFT2JXPZ4BtAGZ2CHAvoZFm1wHPFnen7t7K3ZvkfqSKu7/j7u3dfT937+LuH4bVmRg0yC3d/YqwVN0t7n5qsM3u7r4wrM7zQXkrd3+huPGKiJQVHRuHUnHvPWlf5mlU3HhbBhwazB9OKA22IEuBdmaWcxnyCGBWMP8z0BvAzNoS6nzmHmGvoPoiIrIHZaSnMvS8TNo0qMKlr0xiwuLScQ2tsM5natjVwtOBZ4MO4i1Aq9iGJiIi8ZCSYgzo3pRR1/digFJx4+li4KEgG+jfBPdXApjZYuBhYKCZZZlZO3dfBtwBfG1mUwldyfx3UOV64OJgW68BA3NO4prZFIBC6ouIyB5WJSOdF8/vTsPqFbhg2ARmLlsf75BKzAr6ImFm04FO7r7DzGYDg9z965xl7t5hD8W5x2RmZvrEicV+hKmISKkzNWsttwyfwU+/rKV785rc2b89bepXLbxiEjOzSe6eGe84koXaThGR2Fm6djOnPPU927Odty/pSbPaleIdUp4iaTsLu/L5GjDGzIYDm4Fvgg23IpR6KyIipVzHxtV579ID/kzFPebxb7nzw5msVyquiIhIzDWqXoGXL9yfne6c/dx4fl2X+0lbyaPAzqe7300oVWcYcJDvukyaAlwZ29BERCRR5E7FfeH7RfR+aAzvTc5SKq6IiEiMtapbmWHnd+P3jds49/nxrN20Ld4hFUuhj1px93Hu/p67bwwrm+vuP8Y2NBERSTQ1KpXj7pxRcatX4No3fuL0Z8Yx+9fkvw9FREQkkXVsXJ3/npfJ4tWbGPjCBDZt2xHvkIosoud8ioiIhNstFXelUnFFRET2hANa1uaJMzozNWstV746mR3ZO+MdUpGo8ykiIsWSk4o7+oZdqbiHP6hUXBERkVg6qn197ujfgS9nr+T2D2ckVZurzqeIiJRI9Yq7UnEb1VAqroiISKyd02MvLjm0Jf8b9zNPj1kY73Aips6niIhERU4q7n0nKxVXREQk1v5x1D4ct19D7vt0NsOnLI13OBFR51NERKImJcU4vVsoFfeM7krFFRERiZWUFOPBUzuyf/Oa/P2tqYxbuDreIRVKnU8REYm66hXL8a8T9uWDyw+icVgq7qzlSsUVERGJlvJpqTx7TiZNa1Vk0EsTmbdiQ7xDKpA6nyIiEjP7Nq7Gu2GpuMc+8S13fDhDqbgiIiJRUq1iOsPO70b59FQGvjCBleu3xDukfKnzKSIiMZU7FXfY94s5/MExvPujUnFFRESioXGNirwwsBu/b9rG+cMm8MfWxHwGqDqfIiKyR+ROxb3uzZ847ZmxSsUVERGJgg6NqvGfs7ow+9cNXP7Kj2xPwGeAqvMpIiJ7VHgq7oJVGzn2iW+5/QOl4oqIiJTUYfvU5e4TOjBm7ipueX96wmUYqfMpIiJ7XE4q7qjrD+WM7k14caxScUVERKJhQPemXHl4K16f8AtDRs2Pdzi7UedTRETiRqm4IiIi0XfdEXtzUudGPDRyLu9Myop3OH9S51NEROIuJxX3/pM7KhVXRESkhMyMe0/uyIGtavHPd6by3fzf4h0SoM6niIgkiJQU47RuTRh1/aGc2b3pn6m470xSKq6IiEhRlUtL4amzu9KyTmUueXkSs3+Nf1aROp8iIpJQqlcsx10ndPgzFff6t0KpuDOXxb/RFBERSSZVM9J54fxuVCqfxsDnJ7B83ea4xqPOp4iIJKS/puJ+w+0fzGDdZqXiioiIRKph9Qo8P7Abf2zdwfkvTIjrLS3qfIqISMIKT8U9a/+9eHHsYno/9JVScUVERIqgXcOqPHV2F+av/IPL/vcj23bE5xmg6nyKiEjCy0nF/fCKg2hSsyLXv/UTpz6tVFwREZFIHdy6DvectC/fzv+Nwe9OjctJXHU+RUQkaXRoVI13LjmA+0/pyMLflIorIiJSFKdmNuHaPnvz7o9LeeSLeXt8/+p8iohIUklJMU7LbMLo63txdo+9eKmUpuKaWSczG2dmU8xsopl1D8prmdloM/vDzIbkqnOGmU0zs6lm9qmZ1Q7K9zKzL4Pyr8yscT777BrUn29mj5uZxf5IRURkT7qqdytOy2zM41/O440JP+/RfavzKSIiSalaxXTu7N+BD644iKalMxX3fuAOd+8E3Bq8BtgC3ALcEL6ymaUBjwGHuXtHYCpwRbD4QeCloPxO4J589vkUMAhoHUx9o3UwIiKSGMyMu0/cl0P2rsP/vTedr+as3GP7VudTRESSWodG1Xg7LBV39B5sRGPMgarBfDVgGYC7b3T3bwl1QsNZMFUKrlhWzakDtAO+DOZHA/1z78zMGgBV3X2shy4hvwScELWjERGRhJGemsKTZ3Vhn3pVeO2HPXf1M22P7SmMmd1FqOHbCawEBrr7smDZjcCFQDZwlbt/FpR3BYYBFYBPgKvd3c2sPKEGsiuwGjjd3RcHdc4Dbg52+y93f3GPHKCIiOxROam4R7WrT0a5UnNe9RrgMzN7kNDJ4gMKWtndt5vZpcA0YCMwD7g8WPwTcDKhK6MnAlXMrJa7rw7bRCMgK+x1VlCWJzMbROgqKU2bNo38qEREJCFULp/Gyxd2p2qF9D22z3i10A+4e8cglegjQulEmFk7YADQnlCqz5NmlhrUyS8V6ELgd3dvBTwC3BdsqyZwG7A/0B24zcxqxP7QREQkXqpVTKd8WmrhKyYIM/vCzKbnMfUHLgWudfcmwLXAc4VsKz2o0xloSCjt9sZg8Q3AoWY2GTgUWArsyL2JPDab70207v6su2e6e2adOnUKP1gREUk4tSqXJz11z3UJ43Ll093Db8ipxK7GrT/wurtvBRaZ2Xygu5ktJkgFAjCznFSgEUGd24P6bwNDgnSjo4CR7r4mqDOSUIf1tdgdmYiISOTcvU9+y4K27urg5VvA0EI21ynY5oKg/pvA4KBsGXBSUF4ZONnd1+WqnwWED0TUmF1puyIiIiUWt9wkM7vbzH4BziK48kkoveeXsNVyUn4KSgX6s4677wDWAbUK2FZesQwKRhKcuGrVqpIcloiISLQsI3SVEuBwQmm0BVkKtDOznMuQRwCzAMystpnltPk3As/nruzuy4ENZtYjOIl7LjC8ZIcgIiKyS8w6n4WkEuHuNwWpRK+wazS+/FJ+CkoFKk6d3QuVOiQiIonnYuAhM/sJ+DfB/ZUAQUbQw8BAM8sys3bB1c07gK/NbCqhK6H/Dqr0AuaY2VygHnB32LamhO3zUkJXWOcDCwhlGImIiERFzNJuC0olyuVV4GNC92dmAU3CluWk/BSUCpRTJysYZr4asCYo75WrzldFOQYREZF4CUa07ZrPsmb5lD8NPJ1H+duEbk3Jq06nsPmJQIeiRysiIlK4uKTdmlnrsJfHA7OD+Q+AAWZW3syaExpY6IdCUoE+AM4L5k8BRgVDxH8GHGlmNYKBho4MykRERERERGQPi8uAQ8C9ZrYPoUetLAEuAXD3GcEACTMJjcJ3ubtnB3UuZdejVkawKxXoOeDlYHCiNYRGy8Xd1wSPdJkQrHdnzuBDIiIiIiIismfFa7TbkwtYdjdh96KEleeZCuTuW4BT89nW8+QxqIKIiIiIiIjsWaXmSdwiIiIiIiKSuCx0e6TkMLNVhFKBS6o28FsUthNPOobEkOzHkOzxg44hUezJY9jL3TX8eYQiaDuT9fOXrHFD8sauuPesZI0bkjf20hx3oW2nOp8xYmYT3T0z3nGUhI4hMST7MSR7/KBjSBSl4RjKqmR975I1bkje2BX3npWscUPyxl7W41barYiIiIiIiMScOp8iIiIiIiISc+p8xs6z8Q4gCnQMiSHZjyHZ4wcdQ6IoDcdQViXre5escUPyxq6496xkjRuSN/YyHbfu+RQREREREZGY05VPERERERERiTl1PkVERERERCTm1PmMMjPra2ZzzGy+mQ2OdzwFMbPFZjbNzKaY2cSgrKaZjTSzecHPGmHr3xgc1xwzOypOMT9vZivNbHpYWZFjNrOuwbHPN7PHzczifAy3m9nS4L2YYmb9EvUYzKyJmY02s1lmNsPMrg7Kk+Z9KOAYkul9yDCzH8zsp+AY7gjKk+l9yO8YkuZ9KOuskDbPQh4Plk81sy6R1o21CGI/K4h5qpl9b2b7hS37S/uZQHH3MrN1YX8/t0ZaN85x/z0s5ulmlm1mNYNl8fx9/6XNzrU8IT/jEcSdkJ/vYP+FxZ6on/HC4k7Uz3ie34lyrRO9z7m7a4rSBKQCC4AWQDngJ6BdvOMqIN7FQO1cZfcDg4P5wcB9wXy74HjKA82D40yNQ8yHAF2A6SWJGfgB6AkYMAI4Os7HcDtwQx7rJtwxAA2ALsF8FWBuEGfSvA8FHEMyvQ8GVA7m04HxQI8kex/yO4akeR/K8kQEbR7QL3g/LHhvx0daNwFiPwCoEcwfnRN78HoxudrPBIq7F/BRcerGM+5c6x8HjIr37zvY91/a7FzLE/UzXljcCff5LkLsCfcZjyTuXOsm0mc8z+9EudaJ2udcVz6jqzsw390Xuvs24HWgf5xjKqr+wIvB/IvACWHlr7v7VndfBMwndLx7lLt/DazJVVykmM2sAVDV3cd66C/npbA6MZfPMeQn4Y7B3Ze7+4/B/AZgFtCIJHofCjiG/CTiMbi7/xG8TA8mJ7neh/yOIT8JdwxlXCRtXn/gpeC9HgdUD96veLeXhe7f3b9399+Dl+OAxnswvvyU5PcWz995Ufd9BvDaHomsEBG02Qn5GS8s7gT9fANF/p4ULqF/57kk0mc8ku9EUfucq/MZXY2AX8JeZ1HwF9p4c+BzM5tkZoOCsnruvhxCH0agblCeyMdW1JgbBfO5y+PtiiCV4XnblSqZ0MdgZs2AzoSuWCXl+5DrGCCJ3gczSzWzKcBKYKS7J937kM8xQBK9D2VYJO1CQe9ZPNuUou7/QkJn/XPk1X7uCZHG3dNC6ewjzKx9EevGQsT7NrOKQF/gnbDieP2+I5Gon/GiSJTPd1Ek2mc8Yon8Gc/jO1GOqH3O1fmMrrzuMUrkZ9kc6O5dCKVbXG5mhxSwbrIdG+QfcyIey1NAS6ATsBx4KChP2GMws8qE/nFe4+7rC1o1j7JEPYakeh/cPdvdOxE6Y93dzDoUsHoyHUNSvQ9lWCS/90R9zyLev5kdRujL+T/DiovSfkZTJHH/COzl7vsBTwDvF6FurBRl38cB37l7+BWkeP2+I5Gon/GIJNjnO1KJ+BkvioT8jBfyvS5qn3N1PqMrC2gS9roxsCxOsRTK3ZcFP1cC7xG6dL4iuIxO8HNlsHoiH1tRY85i9/SSuB+Lu68IvoTvBP7LrpTmhDwGM0sn9A/qFXd/NyhOqvchr2NItvchh7uvBb4idCY1qd6HHOHHkKzvQxkUSbtQ0HsWzzYlov2bWUdgKNDf3VfnlOfTfu4Jhcbt7utz0tnd/RMg3cxqR1I3hoqy7wHkSkeM4+87Eon6GS9UAn6+I5Kgn/GiSLjPeD7f68JF7XOuzmd0TQBam1lzMytH6MP1QZxjypOZVTKzKjnzwJHAdELxnhesdh4wPJj/ABhgZuXNrDnQmtAAH4mgSDEHqYgbzKyHmRlwbliduMjpLAROJPReQAIeQ7C/54BZ7v5w2KKkeR/yO4Ykex/qmFn1YL4C0AeYTXK9D3keQzK9D2VcJG3eB8C5FtIDWBe8X/FuLwvdv5k1Bd4FznH3uWHl+bWfiRJ3/eDvADPrTui73upI6sYz7iDeasChhP39xvn3HYlE/YwXKEE/3xFJ0M94RBLxM17A97pw0fuce5xGsiqtE6HRoOYSGvnppnjHU0CcLQiNSPUTMCMnVqAW8CUwL/hZM6zOTcFxzSFOI0kSOlO0HNhO6GzLhcWJGcgk9Ie9ABgCWJyP4WVgGjA1+KNtkKjHABxEKKViKjAlmPol0/tQwDEk0/vQEZgcxDoduDUoT6b3Ib9jSJr3oaxP5NHmAZcAlwTzBvwnWD4NyCyoboLFPhT4Pex/xMSgPM/2M4HiviKI6ydCA8kckAi/88LiDl4PJDSoWHi9eP++82qzE/4zHkHcCfn5jjD2RP2MFxh3An/G8/tOFJPPuQWVRERERERERGJGabciIiIiIiISc+p8ioiIiIiISMyp8ykiIiIiIiIxp86niIiIiIiIxJw6nyIiIiIiImWUmT1vZivNLKJHvJjZaWY208xmmNmrRdmXOp8iSc7MapnZlGD61cyWBvN/mNmTMdjfMDNbZGaXFLDOwcE/pYR6NpiIiOwZZpYdtEXTzewtM6tYhLqdzKxf2OvjzWxwIXX+KEm8EcbVLKddM7NMM3s8Ctv8yszmmNnxRaz3fUn3XVRm1jLn+8We3rfE3DCgbyQrmllr4EbgQHdvD1xTlB3pUSsipYiZ3Q784e4PxnAfw4CP3P3tQtZrFqzXIVaxiIhIYjKzP9y9cjD/CjDJ83+AfXi9NOBsQs8RvKI4+ytGrKnunh3Bes2IcrtmZl8BN7j7xGhtM499pLn7jihur9i/a0lcuT/fZtaS0LM96wCbgIvdfbaZ3Q/MdfehxdmPrnyKlFJm1svMPgrmbzezF83sczNbbGYnmdn9ZjbNzD41s/Rgva5mNsbMJpnZZ2bWIIL9nBqc2f7JzL6O9XGJiEjS+QZoZWbHmdl4M5tsZl+YWT34s4161sw+B14C7gROD66ynW5mA81sSLBuPTN7L2hzfjKzA3LvzMz+bmYTzGyqmd2RV0BBdtCdZjYe6GlmtwZ1pgexWLBe12A/Y4HLw+rnbmNvCFs2PbhKWsnMPg7qTzez0wv7RQVXQh8xs6/NbJaZdTOzd81snpn9Kzz+sPl/BO35T2Z2b9h2/m1mY4Crzax38HufZqEUy/LBeovN7A4z+zFY1iYoP9R2ZVVNNrMqhcUupc6zwJXu3hW4AcjJptsb2NvMvjOzcWYW0RXTHOp8ipQdLYFjgP7A/4DR7r4vsBk4JuiAPgGcEvyjeR64O4Lt3goc5e77AUVKGxIRkdItuJJ5NDAN+Bbo4e6dgdeBf4St2hXo7+5nEmpX3nD3Tu7+Rq5NPg6MCdqcLsCMXPs7EmgNdAc6AV3N7JA8QqsETHf3/d39W2CIu3cLrvpUAI4N1nsBuMrdexbj8PsCy9x9v2C7n0ZYb5u7HwI8DQwn1OntAAw0s1rhK5rZ0cAJwP7B7+T+sMXV3f1QQlevhgGnB+1+GnBp2Hq/uXsX4ClCnQyCn5e7eyfgYELfFaSMMLPKwAHAW2Y2BXgGyLkgkUbob6wXcAYw1MyqR7ptdT5Fyo4R7r6d0BeAVHY1gtOAZsA+hBq3kcE/mpuBxhFs9ztgmJldHGxXRESkQtCWTAR+Bp4j1KZ8ZmbTgL8D7cPW/8DdI+ngHE6ok4S7Z7v7ulzLjwymycCPQBtCX5RzywbeCXt9WHBVdlqwj/ZmVo1QB25MsM7LEcQXbhrQx8zuM7OD84g1Px+E1Z/h7svdfSuwEGiSa90+wAvuvgnA3deELcvpuO8DLHL3ucHrF4HwDvm7wc9JhL4PQKhtf9jMriL0O4ha2q4khRRgbXACKGdqGyzLAoa7+3Z3XwTMIe+/sXw3LCJlw1YAd98JbPddN3zvJHQWywg1cjn/ZPZ19yML26i7X0Koo9oEmJL7rKyIiJRJm8PakyvdfRuh7JohwdW3vwEZYetvjNJ+DbgnbN+t3P25PNbbknOfp5llEEopPCWI7b9BbAZEMjjKDnb/Tp0BEHT2uhLqRN5jZrdGeAxbg587w+ZzXqflWregGDeGrRPJ/rJztu/u9wIXEboKPC4nHVfKBndfDywys1MBLGS/YPH7wGFBeW1CabgLI922Op8ikmMOUMfMegKYWbqZtS+kDmbW0t3Hu/utwG/89aysiIgIQDVgaTB/XgHrbQDyu8fwS4KUUTNLNbOquZZ/BlwQpA1iZo3MrG4hceV0gn8L6p0C4O5rgXVmdlCw/Kx86i8mlAKMmXUBmgfzDYFN7v4/4MGcdaLsc0LHWzHYZ8081pkNNDOzVsHrc4Axeaz3p6Btn+bu9xG6eq3OZylmZq8BY4F9zCzLzC4k9Hm/0Mx+IpTe3j9Y/TNgtZnNBEYDf3f31ZHuK/fZExEpo9x9m5mdAjwepBqlAY+S636aPDxgoWG3jdCXgp9iGqiIiCSr2wndQ7YUGEfQScvDaGBwkLZ7T65lVwPPBl+Oswl1RMfmLHT3z82sLTA2GDPoD0Kj567MLyh3X2tm/yV0hXIxMCFs8fnA82a2idCX7ry8A5wbxDsByElv3ZdQG7kT2M7u91lGhbt/amadgIlmtg34BPi/XOtsMbPzCf3u04IYny5k09eY2WGEfsczgRHRjl0Sh7ufkc+ivwwmFGTOXRdMRaZHrYhIkZgetSIiIhIVtgcetRJtpketSAko7VZEimodcJeZXZLfCmZ2MPAhoTRcERERydsaQoP2Jfxo8WbWMri6uyLesUjy0pVPERERERERiTld+RQREREREZGYU+dTREREREREYk6dTxEREREREYk5dT5FREREREQk5tT5FBERERERkZj7f0u+rsRX4jGYAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# solve\n", + "solver = pybamm.ScipySolver()\n", + "t = np.linspace(0, 3600, 600)\n", + "solution = solver.solve(model, t, inputs={\"Interfacial current density [A.m-2]\": 1.4})\n", + "\n", + "# post-process, so that the solution can be called at any time t or space r\n", + "# (using interpolation)\n", + "c = solution[\"Concentration [mol.m-3]\"]\n", + "c_surf = solution[\"Surface concentration [mol.m-3]\"]\n", + "\n", + "# plot\n", + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(13, 4))\n", + "\n", + "ax1.plot(solution.t, c_surf(solution.t))\n", + "ax1.set_xlabel(\"Time [s]\")\n", + "ax1.set_ylabel(\"Surface concentration [mol.m-3]\")\n", + "\n", + "rsol = mesh[\"negative particle\"].nodes # radial position\n", + "time = 1000 # time in seconds\n", + "ax2.plot(rsol * 1e6, c(t=time, r=rsol), label=\"t={}[s]\".format(time))\n", + "ax2.set_xlabel(\"Particle radius [microns]\")\n", + "ax2.set_ylabel(\"Concentration [mol.m-3]\")\n", + "ax2.legend()\n", + "\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Using pre-defined models in `PyBaMM`\n", + "\n", + "In the next few steps, we will be showing the same workflow with the Single Particle Model (`SPM`). We will also see how you can pass a function as a `parameter`'s value and how to plot such `parameter functions`.\n", + "\n", + "We start by initializing our model" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "spm = pybamm.lithium_ion.SPM()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Finding the parameters in a model\n", + "\n", + "We can print the `parameters` of a model by using the `get_parameters_info` function." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Maximum concentration in positive electrode [mol.m-3] (Parameter)\n", + "Negative electrode Bruggeman coefficient (electrolyte) (Parameter)\n", + "Negative electrode thickness [m] (Parameter)\n", + "Positive electrode Bruggeman coefficient (electrode) (Parameter)\n", + "Positive electrode electrons in reaction (Parameter)\n", + "Initial temperature [K] (Parameter)\n", + "Typical current [A] (Parameter)\n", + "Number of electrodes connected in parallel to make a cell (Parameter)\n", + "Electrode width [m] (Parameter)\n", + "Lower voltage cut-off [V] (Parameter)\n", + "Upper voltage cut-off [V] (Parameter)\n", + "Maximum concentration in negative electrode [mol.m-3] (Parameter)\n", + "Nominal cell capacity [A.h] (Parameter)\n", + "Separator thickness [m] (Parameter)\n", + "Negative electrode Bruggeman coefficient (electrode) (Parameter)\n", + "Positive electrode Bruggeman coefficient (electrolyte) (Parameter)\n", + "Number of cells connected in series to make a battery (Parameter)\n", + "Typical electrolyte concentration [mol.m-3] (Parameter)\n", + "Separator Bruggeman coefficient (electrolyte) (Parameter)\n", + "Electrode height [m] (Parameter)\n", + "Positive electrode thickness [m] (Parameter)\n", + "Negative electrode electrons in reaction (Parameter)\n", + "Reference temperature [K] (Parameter)\n", + "Positive electrode OCP entropic change [V.K-1] (FunctionParameter with input(s) 'Positive particle stoichiometry', 'Positive particle maximum concentration [mol.m-3]')\n", + "Positive particle radius [m] (FunctionParameter with input(s) 'Through-cell distance (x) [m]')\n", + "Initial concentration in negative electrode [mol.m-3] (FunctionParameter with input(s) 'Radial distance (r) [m]', 'Through-cell distance (x) [m]')\n", + "Positive electrode OCP [V] (FunctionParameter with input(s) 'Positive particle stoichiometry')\n", + "Positive electrode diffusivity [m2.s-1] (FunctionParameter with input(s) 'Positive particle stoichiometry', 'Temperature [K]')\n", + "Negative electrode OCP [V] (FunctionParameter with input(s) 'Negative particle stoichiometry')\n", + "Negative electrode OCP entropic change [V.K-1] (FunctionParameter with input(s) 'Negative particle stoichiometry', 'Negative particle maximum concentration [mol.m-3]')\n", + "Negative electrode exchange-current density [A.m-2] (FunctionParameter with input(s) 'Electrolyte concentration [mol.m-3]', 'Negative particle surface concentration [mol.m-3]', 'Negative particle maximum concentration [mol.m-3]', 'Temperature [K]')\n", + "Negative electrode diffusivity [m2.s-1] (FunctionParameter with input(s) 'Negative particle stoichiometry', 'Temperature [K]')\n", + "Initial concentration in positive electrode [mol.m-3] (FunctionParameter with input(s) 'Radial distance (r) [m]', 'Through-cell distance (x) [m]')\n", + "Positive electrode exchange-current density [A.m-2] (FunctionParameter with input(s) 'Electrolyte concentration [mol.m-3]', 'Positive particle surface concentration [mol.m-3]', 'Positive particle maximum concentration [mol.m-3]', 'Temperature [K]')\n", + "Negative electrode active material volume fraction (FunctionParameter with input(s) 'Through-cell distance (x) [m]')\n", + "Separator porosity (FunctionParameter with input(s) 'Through-cell distance (x) [m]')\n", + "Current function [A] (FunctionParameter with input(s) 'Time [s]')\n", + "Negative electrode porosity (FunctionParameter with input(s) 'Through-cell distance (x) [m]')\n", + "Positive electrode active material volume fraction (FunctionParameter with input(s) 'Through-cell distance (x) [m]')\n", + "Ambient temperature [K] (FunctionParameter with input(s) 'Time [s]')\n", + "Positive electrode porosity (FunctionParameter with input(s) 'Through-cell distance (x) [m]')\n", + "Negative particle radius [m] (FunctionParameter with input(s) 'Through-cell distance (x) [m]')\n", + "\n" + ] + } + ], + "source": [ + "spm.print_parameter_info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that there are no `InputParameter` objects in the default SPM. Also, note that if a `FunctionParameter` is expected, it is ok to provide a scalar (parameter) instead. However, if a `Parameter` is expected, you cannot provide a function instead." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Another way to view what parameters are needed is to print the default parameter values. This can also be used to get some good defaults (but care must be taken when combining parameters across datasets and chemistries)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'Negative electrode thickness [m]': 0.0001,\n", + " 'Separator thickness [m]': 2.5e-05,\n", + " 'Positive electrode thickness [m]': 0.0001,\n", + " 'Electrode height [m]': 0.137,\n", + " 'Electrode width [m]': 0.207,\n", + " 'Nominal cell capacity [A.h]': 0.680616,\n", + " 'Typical current [A]': 0.680616,\n", + " 'Current function [A]': 0.680616,\n", + " 'Maximum concentration in negative electrode [mol.m-3]': 24983.2619938437,\n", + " 'Negative electrode diffusivity [m2.s-1]': ,\n", + " 'Negative electrode OCP [V]': ,\n", + " 'Negative electrode porosity': 0.3,\n", + " 'Negative electrode active material volume fraction': 0.6,\n", + " 'Negative particle radius [m]': 1e-05,\n", + " 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5,\n", + " 'Negative electrode Bruggeman coefficient (electrode)': 1.5,\n", + " 'Negative electrode electrons in reaction': 1.0,\n", + " 'Negative electrode exchange-current density [A.m-2]': ,\n", + " 'Negative electrode OCP entropic change [V.K-1]': ,\n", + " 'Maximum concentration in positive electrode [mol.m-3]': 51217.9257309275,\n", + " 'Positive electrode diffusivity [m2.s-1]': ,\n", + " 'Positive electrode OCP [V]': ,\n", + " 'Positive electrode porosity': 0.3,\n", + " 'Positive electrode active material volume fraction': 0.5,\n", + " 'Positive particle radius [m]': 1e-05,\n", + " 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5,\n", + " 'Positive electrode Bruggeman coefficient (electrode)': 1.5,\n", + " 'Positive electrode electrons in reaction': 1.0,\n", + " 'Positive electrode exchange-current density [A.m-2]': ,\n", + " 'Positive electrode OCP entropic change [V.K-1]': ,\n", + " 'Separator porosity': 1.0,\n", + " 'Separator Bruggeman coefficient (electrolyte)': 1.5,\n", + " 'Typical electrolyte concentration [mol.m-3]': 1000.0,\n", + " 'Reference temperature [K]': 298.15,\n", + " 'Ambient temperature [K]': 298.15,\n", + " 'Number of electrodes connected in parallel to make a cell': 1.0,\n", + " 'Number of cells connected in series to make a battery': 1.0,\n", + " 'Lower voltage cut-off [V]': 3.105,\n", + " 'Upper voltage cut-off [V]': 4.1,\n", + " 'Initial concentration in negative electrode [mol.m-3]': 19986.609595075,\n", + " 'Initial concentration in positive electrode [mol.m-3]': 30730.7554385565,\n", + " 'Initial temperature [K]': 298.15}" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "{k: v for k,v in spm.default_parameter_values.items() if k in spm._parameter_info}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now define a dictionary of values for `ParameterValues` as before (here, a subset of the `Chen2020` parameters)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'Ambient temperature [K]': 298.15,\n", + " 'Current function [A]': 5.0,\n", + " 'Electrode height [m]': 0.065,\n", + " 'Electrode width [m]': 1.58,\n", + " 'Initial concentration in negative electrode [mol.m-3]': 29866.0,\n", + " 'Initial concentration in positive electrode [mol.m-3]': 17038.0,\n", + " 'Initial temperature [K]': 298.15,\n", + " 'Lower voltage cut-off [V]': 2.5,\n", + " 'Maximum concentration in negative electrode [mol.m-3]': 33133.0,\n", + " 'Maximum concentration in positive electrode [mol.m-3]': 63104.0,\n", + " 'Negative electrode Bruggeman coefficient (electrode)': 1.5,\n", + " 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5,\n", + " 'Negative electrode OCP [V]': ('graphite_LGM50_ocp_Chen2020',\n", + " ([array([0. , 0.03129623, 0.03499902, 0.0387018 , 0.04240458,\n", + " 0.04610736, 0.04981015, 0.05351292, 0.05721568, 0.06091845,\n", + " 0.06462122, 0.06832399, 0.07202675, 0.07572951, 0.07943227,\n", + " 0.08313503, 0.08683779, 0.09054054, 0.09424331, 0.09794607,\n", + " 0.10164883, 0.10535158, 0.10905434, 0.1127571 , 0.11645985,\n", + " 0.12016261, 0.12386536, 0.12756811, 0.13127086, 0.13497362,\n", + " 0.13867638, 0.14237913, 0.14608189, 0.14978465, 0.15348741,\n", + " 0.15719018, 0.16089294, 0.1645957 , 0.16829847, 0.17200122,\n", + " 0.17570399, 0.17940674, 0.1831095 , 0.18681229, 0.19051504,\n", + " 0.1942178 , 0.19792056, 0.20162334, 0.2053261 , 0.20902886,\n", + " 0.21273164, 0.2164344 , 0.22013716, 0.22383993, 0.2275427 ,\n", + " 0.23124547, 0.23494825, 0.23865101, 0.24235377, 0.24605653,\n", + " 0.2497593 , 0.25346208, 0.25716486, 0.26086762, 0.26457039,\n", + " 0.26827314, 0.2719759 , 0.27567867, 0.27938144, 0.28308421,\n", + " 0.28678698, 0.29048974, 0.29419251, 0.29789529, 0.30159806,\n", + " 0.30530083, 0.30900361, 0.31270637, 0.31640913, 0.32011189,\n", + " 0.32381466, 0.32751744, 0.33122021, 0.33492297, 0.33862575,\n", + " 0.34232853, 0.34603131, 0.34973408, 0.35343685, 0.35713963,\n", + " 0.36084241, 0.36454517, 0.36824795, 0.37195071, 0.37565348,\n", + " 0.37935626, 0.38305904, 0.38676182, 0.3904646 , 0.39416737,\n", + " 0.39787015, 0.40157291, 0.40527567, 0.40897844, 0.41268121,\n", + " 0.41638398, 0.42008676, 0.42378953, 0.4274923 , 0.43119506,\n", + " 0.43489784, 0.43860061, 0.44230338, 0.44600615, 0.44970893,\n", + " 0.45341168, 0.45711444, 0.46081719, 0.46451994, 0.46822269,\n", + " 0.47192545, 0.47562821, 0.47933098, 0.48303375, 0.48673651,\n", + " 0.49043926, 0.49414203, 0.49784482, 0.50154759, 0.50525036,\n", + " 0.50895311, 0.51265586, 0.51635861, 0.52006139, 0.52376415,\n", + " 0.52746692, 0.53116969, 0.53487245, 0.53857521, 0.54227797,\n", + " 0.54598074, 0.5496835 , 0.55338627, 0.55708902, 0.56079178,\n", + " 0.56449454, 0.5681973 , 0.57190006, 0.57560282, 0.57930558,\n", + " 0.58300835, 0.58671112, 0.59041389, 0.59411664, 0.59781941,\n", + " 0.60152218, 0.60522496, 0.60892772, 0.61263048, 0.61633325,\n", + " 0.62003603, 0.6237388 , 0.62744156, 0.63114433, 0.63484711,\n", + " 0.63854988, 0.64225265, 0.64595543, 0.64965823, 0.653361 ,\n", + " 0.65706377, 0.66076656, 0.66446934, 0.66817212, 0.67187489,\n", + " 0.67557767, 0.67928044, 0.68298322, 0.686686 , 0.69038878,\n", + " 0.69409156, 0.69779433, 0.70149709, 0.70519988, 0.70890264,\n", + " 0.7126054 , 0.71630818, 0.72001095, 0.72371371, 0.72741648,\n", + " 0.73111925, 0.73482204, 0.7385248 , 0.74222757, 0.74593034,\n", + " 0.74963312, 0.75333589, 0.75703868, 0.76074146, 0.76444422,\n", + " 0.76814698, 0.77184976, 0.77555253, 0.77925531, 0.78295807,\n", + " 0.78666085, 0.79036364, 0.79406641, 0.79776918, 0.80147197,\n", + " 0.80517474, 0.80887751, 0.81258028, 0.81628304, 0.81998581,\n", + " 0.82368858, 0.82739136, 0.83109411, 0.83479688, 0.83849965,\n", + " 0.84220242, 0.84590519, 0.84960797, 0.85331075, 0.85701353,\n", + " 0.86071631, 0.86441907, 0.86812186, 0.87182464, 0.87552742,\n", + " 0.87923019, 0.88293296, 0.88663573, 0.89033849, 0.89404126,\n", + " 0.89774404, 0.9014468 , 1. ])],\n", + " array([1.81772748, 1.0828807 , 0.99593794, 0.90023398, 0.79649431,\n", + " 0.73354429, 0.66664314, 0.64137149, 0.59813869, 0.5670836 ,\n", + " 0.54746181, 0.53068399, 0.51304734, 0.49394092, 0.47926274,\n", + " 0.46065259, 0.45992726, 0.43801501, 0.42438665, 0.41150269,\n", + " 0.40033659, 0.38957134, 0.37756538, 0.36292541, 0.34357086,\n", + " 0.3406314 , 0.32299468, 0.31379458, 0.30795386, 0.29207319,\n", + " 0.28697687, 0.27405477, 0.2670497 , 0.25857493, 0.25265783,\n", + " 0.24826777, 0.2414345 , 0.23362778, 0.22956218, 0.22370236,\n", + " 0.22181271, 0.22089651, 0.2194268 , 0.21830064, 0.21845333,\n", + " 0.21753715, 0.21719357, 0.21635373, 0.21667822, 0.21738444,\n", + " 0.21469313, 0.21541846, 0.21465495, 0.2135479 , 0.21392964,\n", + " 0.21074206, 0.20873788, 0.20465319, 0.20205732, 0.19774358,\n", + " 0.19444147, 0.19190285, 0.18850531, 0.18581399, 0.18327537,\n", + " 0.18157659, 0.17814088, 0.17529686, 0.1719375 , 0.16934161,\n", + " 0.16756649, 0.16609676, 0.16414985, 0.16260378, 0.16224113,\n", + " 0.160027 , 0.15827096, 0.1588054 , 0.15552238, 0.15580869,\n", + " 0.15220118, 0.1511132 , 0.14987253, 0.14874637, 0.14678037,\n", + " 0.14620776, 0.14555879, 0.14389819, 0.14359279, 0.14242846,\n", + " 0.14038612, 0.13882096, 0.13954628, 0.13946992, 0.13780934,\n", + " 0.13973714, 0.13698858, 0.13523254, 0.13441178, 0.1352898 ,\n", + " 0.13507985, 0.13647321, 0.13601512, 0.13435452, 0.1334765 ,\n", + " 0.1348317 , 0.13275118, 0.13286571, 0.13263667, 0.13456447,\n", + " 0.13471718, 0.13395369, 0.13448814, 0.1334765 , 0.13298023,\n", + " 0.13259849, 0.13338107, 0.13309476, 0.13275118, 0.13443087,\n", + " 0.13315202, 0.132713 , 0.1330184 , 0.13278936, 0.13225491,\n", + " 0.13317111, 0.13263667, 0.13187316, 0.13265574, 0.13250305,\n", + " 0.13324745, 0.13204496, 0.13242669, 0.13233127, 0.13198769,\n", + " 0.13254122, 0.13145325, 0.13298023, 0.13168229, 0.1313578 ,\n", + " 0.13235036, 0.13120511, 0.13089971, 0.13109058, 0.13082336,\n", + " 0.13011713, 0.129869 , 0.12992626, 0.12942998, 0.12796026,\n", + " 0.12862831, 0.12656689, 0.12734947, 0.12509716, 0.12110791,\n", + " 0.11839751, 0.11244226, 0.11307214, 0.1092165 , 0.10683058,\n", + " 0.10433014, 0.10530359, 0.10056993, 0.09950104, 0.09854668,\n", + " 0.09921473, 0.09541635, 0.09980643, 0.0986612 , 0.09560722,\n", + " 0.09755413, 0.09612258, 0.09430929, 0.09661885, 0.09366032,\n", + " 0.09522548, 0.09535909, 0.09316404, 0.09450016, 0.0930877 ,\n", + " 0.09343126, 0.0932404 , 0.09350762, 0.09339309, 0.09291591,\n", + " 0.09303043, 0.0926296 , 0.0932404 , 0.09261052, 0.09249599,\n", + " 0.09240055, 0.09253416, 0.09209515, 0.09234329, 0.09366032,\n", + " 0.09333583, 0.09322131, 0.09264868, 0.09253416, 0.09243873,\n", + " 0.09230512, 0.09310678, 0.09165615, 0.09159888, 0.09207606,\n", + " 0.09175158, 0.09177067, 0.09236237, 0.09241964, 0.09320222,\n", + " 0.09199972, 0.09167523, 0.09322131, 0.09190428, 0.09167523,\n", + " 0.09285865, 0.09180884, 0.09150345, 0.09186611, 0.0920188 ,\n", + " 0.09320222, 0.09131257, 0.09117896, 0.09133166, 0.09089265,\n", + " 0.09058725, 0.09051091, 0.09033912, 0.09041547, 0.0911217 ,\n", + " 0.0894611 , 0.08999555, 0.08921297, 0.08881213, 0.08797229,\n", + " 0.08709427, 0.08503284, 0.07601531]))),\n", + " 'Negative electrode OCP entropic change [V.K-1]': 0.0,\n", + " 'Negative electrode active material volume fraction': 0.75,\n", + " 'Negative electrode diffusivity [m2.s-1]': 3.3e-14,\n", + " 'Negative electrode electrons in reaction': 1.0,\n", + " 'Negative electrode exchange-current density [A.m-2]': ,\n", + " 'Negative electrode porosity': 0.25,\n", + " 'Negative electrode thickness [m]': 8.52e-05,\n", + " 'Negative particle radius [m]': 5.86e-06,\n", + " 'Nominal cell capacity [A.h]': 5.0,\n", + " 'Number of cells connected in series to make a battery': 1.0,\n", + " 'Number of electrodes connected in parallel to make a cell': 1.0,\n", + " 'Positive electrode Bruggeman coefficient (electrode)': 1.5,\n", + " 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5,\n", + " 'Positive electrode OCP [V]': ('nmc_LGM50_ocp_Chen2020',\n", + " ([array([0.24879728, 0.26614516, 0.26886763, 0.27159011, 0.27431258,\n", + " 0.27703505, 0.27975753, 0.28248 , 0.28520247, 0.28792495,\n", + " 0.29064743, 0.29336992, 0.29609239, 0.29881487, 0.30153735,\n", + " 0.30425983, 0.30698231, 0.30970478, 0.31242725, 0.31514973,\n", + " 0.3178722 , 0.32059466, 0.32331714, 0.32603962, 0.32876209,\n", + " 0.33148456, 0.33420703, 0.3369295 , 0.33965197, 0.34237446,\n", + " 0.34509694, 0.34781941, 0.3505419 , 0.35326438, 0.35598685,\n", + " 0.35870932, 0.3614318 , 0.36415428, 0.36687674, 0.36959921,\n", + " 0.37232169, 0.37504418, 0.37776665, 0.38048913, 0.38321161,\n", + " 0.38593408, 0.38865655, 0.39137903, 0.39410151, 0.39682398,\n", + " 0.39954645, 0.40226892, 0.4049914 , 0.40771387, 0.41043634,\n", + " 0.41315882, 0.41588129, 0.41860377, 0.42132624, 0.42404872,\n", + " 0.4267712 , 0.42949368, 0.43221616, 0.43493864, 0.43766111,\n", + " 0.44038359, 0.44310607, 0.44582856, 0.44855103, 0.45127351,\n", + " 0.453996 , 0.45671848, 0.45944095, 0.46216343, 0.46488592,\n", + " 0.46760838, 0.47033085, 0.47305333, 0.47577581, 0.47849828,\n", + " 0.48122074, 0.48394321, 0.48666569, 0.48938816, 0.49211064,\n", + " 0.4948331 , 0.49755557, 0.50027804, 0.50300052, 0.50572298,\n", + " 0.50844545, 0.51116792, 0.51389038, 0.51661284, 0.51933531,\n", + " 0.52205777, 0.52478024, 0.52750271, 0.53022518, 0.53294765,\n", + " 0.53567012, 0.53839258, 0.54111506, 0.54383753, 0.54656 ,\n", + " 0.54928247, 0.55200494, 0.5547274 , 0.55744986, 0.56017233,\n", + " 0.5628948 , 0.56561729, 0.56833976, 0.57106222, 0.57378469,\n", + " 0.57650716, 0.57922963, 0.5819521 , 0.58467456, 0.58739702,\n", + " 0.59011948, 0.59284194, 0.5955644 , 0.59828687, 0.60100935,\n", + " 0.60373182, 0.60645429, 0.60917677, 0.61189925, 0.61462172,\n", + " 0.61734419, 0.62006666, 0.62278914, 0.62551162, 0.62823408,\n", + " 0.63095656, 0.63367903, 0.6364015 , 0.63912397, 0.64184645,\n", + " 0.64456893, 0.6472914 , 0.65001389, 0.65273637, 0.65545884,\n", + " 0.65818131, 0.66090379, 0.66362625, 0.66634874, 0.66907121,\n", + " 0.67179369, 0.67451616, 0.67723865, 0.67996113, 0.68268361,\n", + " 0.68540608, 0.68812855, 0.69085103, 0.6935735 , 0.69629597,\n", + " 0.69901843, 0.7017409 , 0.70446338, 0.70718585, 0.70990833,\n", + " 0.71263081, 0.71535328, 0.71807574, 0.72079822, 0.72352069,\n", + " 0.72624317, 0.72896564, 0.7316881 , 0.73441057, 0.73713303,\n", + " 0.73985551, 0.74257799, 0.74530047, 0.74802293, 0.7507454 ,\n", + " 0.75346787, 0.75619034, 0.75891281, 0.76163529, 0.76435776,\n", + " 0.76708024, 0.7698027 , 0.77252517, 0.77524765, 0.77797012,\n", + " 0.78069258, 0.78341506, 0.78613753, 0.78885999, 0.79158246,\n", + " 0.79430494, 0.79702741, 0.79974987, 0.80247234, 0.8051948 ,\n", + " 0.80791727, 0.81063974, 0.81336221, 0.81608468, 0.81880714,\n", + " 0.82152961, 0.82425208, 0.82697453, 0.829697 , 0.83241946,\n", + " 0.83514192, 0.83786439, 0.84058684, 0.84330931, 0.84603177,\n", + " 0.84875424, 0.8514767 , 0.85419916, 0.85692162, 0.85964409,\n", + " 0.86236656, 0.86508902, 0.86781149, 0.87053395, 0.87325642,\n", + " 0.87597888, 0.87870135, 0.88142383, 0.8841463 , 0.88686877,\n", + " 0.88959124, 0.89231371, 0.8950362 , 0.89775868, 0.90048116,\n", + " 0.90320364, 0.90592613, 1. ])],\n", + " array([4.4 , 4.2935653 , 4.2768621 , 4.2647018 , 4.2540312 ,\n", + " 4.2449446 , 4.2364879 , 4.2302647 , 4.2225528 , 4.2182574 ,\n", + " 4.213294 , 4.2090373 , 4.2051239 , 4.2012677 , 4.1981564 ,\n", + " 4.1955218 , 4.1931167 , 4.1889744 , 4.1881533 , 4.1865883 ,\n", + " 4.1850228 , 4.1832285 , 4.1808805 , 4.1805749 , 4.1789522 ,\n", + " 4.1768146 , 4.1768146 , 4.1752872 , 4.173111 , 4.1726718 ,\n", + " 4.1710877 , 4.1702285 , 4.168797 , 4.1669831 , 4.1655135 ,\n", + " 4.1634517 , 4.1598248 , 4.1571712 , 4.154079 , 4.1504135 ,\n", + " 4.1466532 , 4.1423388 , 4.1382346 , 4.1338248 , 4.1305799 ,\n", + " 4.1272392 , 4.1228104 , 4.1186109 , 4.114182 , 4.1096005 ,\n", + " 4.1046948 , 4.1004758 , 4.0956464 , 4.0909696 , 4.0864644 ,\n", + " 4.0818448 , 4.077683 , 4.0733309 , 4.0690737 , 4.0647216 ,\n", + " 4.0608654 , 4.0564747 , 4.0527525 , 4.0492401 , 4.0450211 ,\n", + " 4.041986 , 4.0384736 , 4.035171 , 4.0320406 , 4.0289288 ,\n", + " 4.02597 , 4.0227437 , 4.0199757 , 4.0175133 , 4.0149746 ,\n", + " 4.0122066 , 4.009954 , 4.0075679 , 4.0050669 , 4.0023184 ,\n", + " 3.9995501 , 3.9969349 , 3.9926589 , 3.9889555 , 3.9834003 ,\n", + " 3.9783037 , 3.9755929 , 3.9707632 , 3.9681098 , 3.9635665 ,\n", + " 3.9594433 , 3.9556634 , 3.9521511 , 3.9479132 , 3.9438281 ,\n", + " 3.9400866 , 3.9362304 , 3.9314201 , 3.9283848 , 3.9242232 ,\n", + " 3.9192028 , 3.9166257 , 3.9117961 , 3.90815 , 3.9038739 ,\n", + " 3.8995597 , 3.8959136 , 3.8909314 , 3.8872662 , 3.8831048 ,\n", + " 3.8793442 , 3.8747628 , 3.8702576 , 3.8666878 , 3.8623927 ,\n", + " 3.8581741 , 3.854146 , 3.8499846 , 3.8450022 , 3.8422534 ,\n", + " 3.8380919 , 3.8341596 , 3.8309333 , 3.8272109 , 3.823164 ,\n", + " 3.8192315 , 3.8159864 , 3.8123021 , 3.8090379 , 3.8071671 ,\n", + " 3.8040555 , 3.8013639 , 3.7970879 , 3.7953317 , 3.7920673 ,\n", + " 3.788383 , 3.7855389 , 3.7838206 , 3.78111 , 3.7794874 ,\n", + " 3.7769294 , 3.773608 , 3.7695992 , 3.7690265 , 3.7662776 ,\n", + " 3.7642922 , 3.7626889 , 3.7603791 , 3.7575538 , 3.7552056 ,\n", + " 3.7533159 , 3.7507198 , 3.7487535 , 3.7471499 , 3.7442865 ,\n", + " 3.7423012 , 3.7400677 , 3.7385788 , 3.7345319 , 3.7339211 ,\n", + " 3.7301605 , 3.7301033 , 3.7278316 , 3.7251589 , 3.723861 ,\n", + " 3.7215703 , 3.7191267 , 3.7172751 , 3.7157097 , 3.7130945 ,\n", + " 3.7099447 , 3.7071004 , 3.7045615 , 3.703588 , 3.70208 ,\n", + " 3.7002664 , 3.6972122 , 3.6952841 , 3.6929362 , 3.6898055 ,\n", + " 3.6890991 , 3.686522 , 3.6849759 , 3.6821697 , 3.6808143 ,\n", + " 3.6786573 , 3.6761947 , 3.674763 , 3.6712887 , 3.6697233 ,\n", + " 3.6678908 , 3.6652565 , 3.6630611 , 3.660274 , 3.6583652 ,\n", + " 3.6554828 , 3.6522949 , 3.6499848 , 3.6470451 , 3.6405547 ,\n", + " 3.6383405 , 3.635076 , 3.633549 , 3.6322317 , 3.6306856 ,\n", + " 3.6283948 , 3.6268487 , 3.6243098 , 3.6223626 , 3.6193655 ,\n", + " 3.6177621 , 3.6158531 , 3.6128371 , 3.6118062 , 3.6094582 ,\n", + " 3.6072438 , 3.6049912 , 3.6030822 , 3.6012688 , 3.5995889 ,\n", + " 3.5976417 , 3.5951984 , 3.593843 , 3.5916286 , 3.5894907 ,\n", + " 3.587429 , 3.5852909 , 3.5834775 , 3.5817785 , 3.5801177 ,\n", + " 3.5778842 , 3.5763381 , 3.5737801 , 3.5721002 , 3.5702102 ,\n", + " 3.5684922 , 3.5672133 , 3.52302167]))),\n", + " 'Positive electrode OCP entropic change [V.K-1]': 0.0,\n", + " 'Positive electrode active material volume fraction': 0.665,\n", + " 'Positive electrode diffusivity [m2.s-1]': 4e-15,\n", + " 'Positive electrode electrons in reaction': 1.0,\n", + " 'Positive electrode exchange-current density [A.m-2]': ,\n", + " 'Positive electrode porosity': 0.335,\n", + " 'Positive electrode thickness [m]': 7.56e-05,\n", + " 'Positive particle radius [m]': 5.22e-06,\n", + " 'Reference temperature [K]': 298.15,\n", + " 'Separator Bruggeman coefficient (electrolyte)': 1.5,\n", + " 'Separator porosity': 0.47,\n", + " 'Separator thickness [m]': 1.2e-05,\n", + " 'Typical current [A]': 5.0,\n", + " 'Typical electrolyte concentration [mol.m-3]': 1000.0,\n", + " 'Upper voltage cut-off [V]': 4.4}" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def graphite_mcmb2528_diffusivity_Dualfoil1998(sto, T):\n", + " D_ref = 3.9 * 10 ** (-14)\n", + " E_D_s = 42770\n", + " arrhenius = exp(E_D_s / constants.R * (1 / 298.15 - 1 / T))\n", + " return D_ref * arrhenius\n", + "\n", + "neg_ocp = np.array([[0. , 1.81772748],\n", + " [0.03129623, 1.0828807 ],\n", + " [0.03499902, 0.99593794],\n", + " [0.0387018 , 0.90023398],\n", + " [0.04240458, 0.79649431],\n", + " [0.04610736, 0.73354429],\n", + " [0.04981015, 0.66664314],\n", + " [0.05351292, 0.64137149],\n", + " [0.05721568, 0.59813869],\n", + " [0.06091845, 0.5670836 ],\n", + " [0.06462122, 0.54746181],\n", + " [0.06832399, 0.53068399],\n", + " [0.07202675, 0.51304734],\n", + " [0.07572951, 0.49394092],\n", + " [0.07943227, 0.47926274],\n", + " [0.08313503, 0.46065259],\n", + " [0.08683779, 0.45992726],\n", + " [0.09054054, 0.43801501],\n", + " [0.09424331, 0.42438665],\n", + " [0.09794607, 0.41150269],\n", + " [0.10164883, 0.40033659],\n", + " [0.10535158, 0.38957134],\n", + " [0.10905434, 0.37756538],\n", + " [0.1127571 , 0.36292541],\n", + " [0.11645985, 0.34357086],\n", + " [0.12016261, 0.3406314 ],\n", + " [0.12386536, 0.32299468],\n", + " [0.12756811, 0.31379458],\n", + " [0.13127086, 0.30795386],\n", + " [0.13497362, 0.29207319],\n", + " [0.13867638, 0.28697687],\n", + " [0.14237913, 0.27405477],\n", + " [0.14608189, 0.2670497 ],\n", + " [0.14978465, 0.25857493],\n", + " [0.15348741, 0.25265783],\n", + " [0.15719018, 0.24826777],\n", + " [0.16089294, 0.2414345 ],\n", + " [0.1645957 , 0.23362778],\n", + " [0.16829847, 0.22956218],\n", + " [0.17200122, 0.22370236],\n", + " [0.17570399, 0.22181271],\n", + " [0.17940674, 0.22089651],\n", + " [0.1831095 , 0.2194268 ],\n", + " [0.18681229, 0.21830064],\n", + " [0.19051504, 0.21845333],\n", + " [0.1942178 , 0.21753715],\n", + " [0.19792056, 0.21719357],\n", + " [0.20162334, 0.21635373],\n", + " [0.2053261 , 0.21667822],\n", + " [0.20902886, 0.21738444],\n", + " [0.21273164, 0.21469313],\n", + " [0.2164344 , 0.21541846],\n", + " [0.22013716, 0.21465495],\n", + " [0.22383993, 0.2135479 ],\n", + " [0.2275427 , 0.21392964],\n", + " [0.23124547, 0.21074206],\n", + " [0.23494825, 0.20873788],\n", + " [0.23865101, 0.20465319],\n", + " [0.24235377, 0.20205732],\n", + " [0.24605653, 0.19774358],\n", + " [0.2497593 , 0.19444147],\n", + " [0.25346208, 0.19190285],\n", + " [0.25716486, 0.18850531],\n", + " [0.26086762, 0.18581399],\n", + " [0.26457039, 0.18327537],\n", + " [0.26827314, 0.18157659],\n", + " [0.2719759 , 0.17814088],\n", + " [0.27567867, 0.17529686],\n", + " [0.27938144, 0.1719375 ],\n", + " [0.28308421, 0.16934161],\n", + " [0.28678698, 0.16756649],\n", + " [0.29048974, 0.16609676],\n", + " [0.29419251, 0.16414985],\n", + " [0.29789529, 0.16260378],\n", + " [0.30159806, 0.16224113],\n", + " [0.30530083, 0.160027 ],\n", + " [0.30900361, 0.15827096],\n", + " [0.31270637, 0.1588054 ],\n", + " [0.31640913, 0.15552238],\n", + " [0.32011189, 0.15580869],\n", + " [0.32381466, 0.15220118],\n", + " [0.32751744, 0.1511132 ],\n", + " [0.33122021, 0.14987253],\n", + " [0.33492297, 0.14874637],\n", + " [0.33862575, 0.14678037],\n", + " [0.34232853, 0.14620776],\n", + " [0.34603131, 0.14555879],\n", + " [0.34973408, 0.14389819],\n", + " [0.35343685, 0.14359279],\n", + " [0.35713963, 0.14242846],\n", + " [0.36084241, 0.14038612],\n", + " [0.36454517, 0.13882096],\n", + " [0.36824795, 0.13954628],\n", + " [0.37195071, 0.13946992],\n", + " [0.37565348, 0.13780934],\n", + " [0.37935626, 0.13973714],\n", + " [0.38305904, 0.13698858],\n", + " [0.38676182, 0.13523254],\n", + " [0.3904646 , 0.13441178],\n", + " [0.39416737, 0.1352898 ],\n", + " [0.39787015, 0.13507985],\n", + " [0.40157291, 0.13647321],\n", + " [0.40527567, 0.13601512],\n", + " [0.40897844, 0.13435452],\n", + " [0.41268121, 0.1334765 ],\n", + " [0.41638398, 0.1348317 ],\n", + " [0.42008676, 0.13275118],\n", + " [0.42378953, 0.13286571],\n", + " [0.4274923 , 0.13263667],\n", + " [0.43119506, 0.13456447],\n", + " [0.43489784, 0.13471718],\n", + " [0.43860061, 0.13395369],\n", + " [0.44230338, 0.13448814],\n", + " [0.44600615, 0.1334765 ],\n", + " [0.44970893, 0.13298023],\n", + " [0.45341168, 0.13259849],\n", + " [0.45711444, 0.13338107],\n", + " [0.46081719, 0.13309476],\n", + " [0.46451994, 0.13275118],\n", + " [0.46822269, 0.13443087],\n", + " [0.47192545, 0.13315202],\n", + " [0.47562821, 0.132713 ],\n", + " [0.47933098, 0.1330184 ],\n", + " [0.48303375, 0.13278936],\n", + " [0.48673651, 0.13225491],\n", + " [0.49043926, 0.13317111],\n", + " [0.49414203, 0.13263667],\n", + " [0.49784482, 0.13187316],\n", + " [0.50154759, 0.13265574],\n", + " [0.50525036, 0.13250305],\n", + " [0.50895311, 0.13324745],\n", + " [0.51265586, 0.13204496],\n", + " [0.51635861, 0.13242669],\n", + " [0.52006139, 0.13233127],\n", + " [0.52376415, 0.13198769],\n", + " [0.52746692, 0.13254122],\n", + " [0.53116969, 0.13145325],\n", + " [0.53487245, 0.13298023],\n", + " [0.53857521, 0.13168229],\n", + " [0.54227797, 0.1313578 ],\n", + " [0.54598074, 0.13235036],\n", + " [0.5496835 , 0.13120511],\n", + " [0.55338627, 0.13089971],\n", + " [0.55708902, 0.13109058],\n", + " [0.56079178, 0.13082336],\n", + " [0.56449454, 0.13011713],\n", + " [0.5681973 , 0.129869 ],\n", + " [0.57190006, 0.12992626],\n", + " [0.57560282, 0.12942998],\n", + " [0.57930558, 0.12796026],\n", + " [0.58300835, 0.12862831],\n", + " [0.58671112, 0.12656689],\n", + " [0.59041389, 0.12734947],\n", + " [0.59411664, 0.12509716],\n", + " [0.59781941, 0.12110791],\n", + " [0.60152218, 0.11839751],\n", + " [0.60522496, 0.11244226],\n", + " [0.60892772, 0.11307214],\n", + " [0.61263048, 0.1092165 ],\n", + " [0.61633325, 0.10683058],\n", + " [0.62003603, 0.10433014],\n", + " [0.6237388 , 0.10530359],\n", + " [0.62744156, 0.10056993],\n", + " [0.63114433, 0.09950104],\n", + " [0.63484711, 0.09854668],\n", + " [0.63854988, 0.09921473],\n", + " [0.64225265, 0.09541635],\n", + " [0.64595543, 0.09980643],\n", + " [0.64965823, 0.0986612 ],\n", + " [0.653361 , 0.09560722],\n", + " [0.65706377, 0.09755413],\n", + " [0.66076656, 0.09612258],\n", + " [0.66446934, 0.09430929],\n", + " [0.66817212, 0.09661885],\n", + " [0.67187489, 0.09366032],\n", + " [0.67557767, 0.09522548],\n", + " [0.67928044, 0.09535909],\n", + " [0.68298322, 0.09316404],\n", + " [0.686686 , 0.09450016],\n", + " [0.69038878, 0.0930877 ],\n", + " [0.69409156, 0.09343126],\n", + " [0.69779433, 0.0932404 ],\n", + " [0.70149709, 0.09350762],\n", + " [0.70519988, 0.09339309],\n", + " [0.70890264, 0.09291591],\n", + " [0.7126054 , 0.09303043],\n", + " [0.71630818, 0.0926296 ],\n", + " [0.72001095, 0.0932404 ],\n", + " [0.72371371, 0.09261052],\n", + " [0.72741648, 0.09249599],\n", + " [0.73111925, 0.09240055],\n", + " [0.73482204, 0.09253416],\n", + " [0.7385248 , 0.09209515],\n", + " [0.74222757, 0.09234329],\n", + " [0.74593034, 0.09366032],\n", + " [0.74963312, 0.09333583],\n", + " [0.75333589, 0.09322131],\n", + " [0.75703868, 0.09264868],\n", + " [0.76074146, 0.09253416],\n", + " [0.76444422, 0.09243873],\n", + " [0.76814698, 0.09230512],\n", + " [0.77184976, 0.09310678],\n", + " [0.77555253, 0.09165615],\n", + " [0.77925531, 0.09159888],\n", + " [0.78295807, 0.09207606],\n", + " [0.78666085, 0.09175158],\n", + " [0.79036364, 0.09177067],\n", + " [0.79406641, 0.09236237],\n", + " [0.79776918, 0.09241964],\n", + " [0.80147197, 0.09320222],\n", + " [0.80517474, 0.09199972],\n", + " [0.80887751, 0.09167523],\n", + " [0.81258028, 0.09322131],\n", + " [0.81628304, 0.09190428],\n", + " [0.81998581, 0.09167523],\n", + " [0.82368858, 0.09285865],\n", + " [0.82739136, 0.09180884],\n", + " [0.83109411, 0.09150345],\n", + " [0.83479688, 0.09186611],\n", + " [0.83849965, 0.0920188 ],\n", + " [0.84220242, 0.09320222],\n", + " [0.84590519, 0.09131257],\n", + " [0.84960797, 0.09117896],\n", + " [0.85331075, 0.09133166],\n", + " [0.85701353, 0.09089265],\n", + " [0.86071631, 0.09058725],\n", + " [0.86441907, 0.09051091],\n", + " [0.86812186, 0.09033912],\n", + " [0.87182464, 0.09041547],\n", + " [0.87552742, 0.0911217 ],\n", + " [0.87923019, 0.0894611 ],\n", + " [0.88293296, 0.08999555],\n", + " [0.88663573, 0.08921297],\n", + " [0.89033849, 0.08881213],\n", + " [0.89404126, 0.08797229],\n", + " [0.89774404, 0.08709427],\n", + " [0.9014468 , 0.08503284],\n", + " [1. , 0.07601531]])\n", + "\n", + "pos_ocp = np.array([[0.24879728, 4.4 ],\n", + " [0.26614516, 4.2935653 ],\n", + " [0.26886763, 4.2768621 ],\n", + " [0.27159011, 4.2647018 ],\n", + " [0.27431258, 4.2540312 ],\n", + " [0.27703505, 4.2449446 ],\n", + " [0.27975753, 4.2364879 ],\n", + " [0.28248 , 4.2302647 ],\n", + " [0.28520247, 4.2225528 ],\n", + " [0.28792495, 4.2182574 ],\n", + " [0.29064743, 4.213294 ],\n", + " [0.29336992, 4.2090373 ],\n", + " [0.29609239, 4.2051239 ],\n", + " [0.29881487, 4.2012677 ],\n", + " [0.30153735, 4.1981564 ],\n", + " [0.30425983, 4.1955218 ],\n", + " [0.30698231, 4.1931167 ],\n", + " [0.30970478, 4.1889744 ],\n", + " [0.31242725, 4.1881533 ],\n", + " [0.31514973, 4.1865883 ],\n", + " [0.3178722 , 4.1850228 ],\n", + " [0.32059466, 4.1832285 ],\n", + " [0.32331714, 4.1808805 ],\n", + " [0.32603962, 4.1805749 ],\n", + " [0.32876209, 4.1789522 ],\n", + " [0.33148456, 4.1768146 ],\n", + " [0.33420703, 4.1768146 ],\n", + " [0.3369295 , 4.1752872 ],\n", + " [0.33965197, 4.173111 ],\n", + " [0.34237446, 4.1726718 ],\n", + " [0.34509694, 4.1710877 ],\n", + " [0.34781941, 4.1702285 ],\n", + " [0.3505419 , 4.168797 ],\n", + " [0.35326438, 4.1669831 ],\n", + " [0.35598685, 4.1655135 ],\n", + " [0.35870932, 4.1634517 ],\n", + " [0.3614318 , 4.1598248 ],\n", + " [0.36415428, 4.1571712 ],\n", + " [0.36687674, 4.154079 ],\n", + " [0.36959921, 4.1504135 ],\n", + " [0.37232169, 4.1466532 ],\n", + " [0.37504418, 4.1423388 ],\n", + " [0.37776665, 4.1382346 ],\n", + " [0.38048913, 4.1338248 ],\n", + " [0.38321161, 4.1305799 ],\n", + " [0.38593408, 4.1272392 ],\n", + " [0.38865655, 4.1228104 ],\n", + " [0.39137903, 4.1186109 ],\n", + " [0.39410151, 4.114182 ],\n", + " [0.39682398, 4.1096005 ],\n", + " [0.39954645, 4.1046948 ],\n", + " [0.40226892, 4.1004758 ],\n", + " [0.4049914 , 4.0956464 ],\n", + " [0.40771387, 4.0909696 ],\n", + " [0.41043634, 4.0864644 ],\n", + " [0.41315882, 4.0818448 ],\n", + " [0.41588129, 4.077683 ],\n", + " [0.41860377, 4.0733309 ],\n", + " [0.42132624, 4.0690737 ],\n", + " [0.42404872, 4.0647216 ],\n", + " [0.4267712 , 4.0608654 ],\n", + " [0.42949368, 4.0564747 ],\n", + " [0.43221616, 4.0527525 ],\n", + " [0.43493864, 4.0492401 ],\n", + " [0.43766111, 4.0450211 ],\n", + " [0.44038359, 4.041986 ],\n", + " [0.44310607, 4.0384736 ],\n", + " [0.44582856, 4.035171 ],\n", + " [0.44855103, 4.0320406 ],\n", + " [0.45127351, 4.0289288 ],\n", + " [0.453996 , 4.02597 ],\n", + " [0.45671848, 4.0227437 ],\n", + " [0.45944095, 4.0199757 ],\n", + " [0.46216343, 4.0175133 ],\n", + " [0.46488592, 4.0149746 ],\n", + " [0.46760838, 4.0122066 ],\n", + " [0.47033085, 4.009954 ],\n", + " [0.47305333, 4.0075679 ],\n", + " [0.47577581, 4.0050669 ],\n", + " [0.47849828, 4.0023184 ],\n", + " [0.48122074, 3.9995501 ],\n", + " [0.48394321, 3.9969349 ],\n", + " [0.48666569, 3.9926589 ],\n", + " [0.48938816, 3.9889555 ],\n", + " [0.49211064, 3.9834003 ],\n", + " [0.4948331 , 3.9783037 ],\n", + " [0.49755557, 3.9755929 ],\n", + " [0.50027804, 3.9707632 ],\n", + " [0.50300052, 3.9681098 ],\n", + " [0.50572298, 3.9635665 ],\n", + " [0.50844545, 3.9594433 ],\n", + " [0.51116792, 3.9556634 ],\n", + " [0.51389038, 3.9521511 ],\n", + " [0.51661284, 3.9479132 ],\n", + " [0.51933531, 3.9438281 ],\n", + " [0.52205777, 3.9400866 ],\n", + " [0.52478024, 3.9362304 ],\n", + " [0.52750271, 3.9314201 ],\n", + " [0.53022518, 3.9283848 ],\n", + " [0.53294765, 3.9242232 ],\n", + " [0.53567012, 3.9192028 ],\n", + " [0.53839258, 3.9166257 ],\n", + " [0.54111506, 3.9117961 ],\n", + " [0.54383753, 3.90815 ],\n", + " [0.54656 , 3.9038739 ],\n", + " [0.54928247, 3.8995597 ],\n", + " [0.55200494, 3.8959136 ],\n", + " [0.5547274 , 3.8909314 ],\n", + " [0.55744986, 3.8872662 ],\n", + " [0.56017233, 3.8831048 ],\n", + " [0.5628948 , 3.8793442 ],\n", + " [0.56561729, 3.8747628 ],\n", + " [0.56833976, 3.8702576 ],\n", + " [0.57106222, 3.8666878 ],\n", + " [0.57378469, 3.8623927 ],\n", + " [0.57650716, 3.8581741 ],\n", + " [0.57922963, 3.854146 ],\n", + " [0.5819521 , 3.8499846 ],\n", + " [0.58467456, 3.8450022 ],\n", + " [0.58739702, 3.8422534 ],\n", + " [0.59011948, 3.8380919 ],\n", + " [0.59284194, 3.8341596 ],\n", + " [0.5955644 , 3.8309333 ],\n", + " [0.59828687, 3.8272109 ],\n", + " [0.60100935, 3.823164 ],\n", + " [0.60373182, 3.8192315 ],\n", + " [0.60645429, 3.8159864 ],\n", + " [0.60917677, 3.8123021 ],\n", + " [0.61189925, 3.8090379 ],\n", + " [0.61462172, 3.8071671 ],\n", + " [0.61734419, 3.8040555 ],\n", + " [0.62006666, 3.8013639 ],\n", + " [0.62278914, 3.7970879 ],\n", + " [0.62551162, 3.7953317 ],\n", + " [0.62823408, 3.7920673 ],\n", + " [0.63095656, 3.788383 ],\n", + " [0.63367903, 3.7855389 ],\n", + " [0.6364015 , 3.7838206 ],\n", + " [0.63912397, 3.78111 ],\n", + " [0.64184645, 3.7794874 ],\n", + " [0.64456893, 3.7769294 ],\n", + " [0.6472914 , 3.773608 ],\n", + " [0.65001389, 3.7695992 ],\n", + " [0.65273637, 3.7690265 ],\n", + " [0.65545884, 3.7662776 ],\n", + " [0.65818131, 3.7642922 ],\n", + " [0.66090379, 3.7626889 ],\n", + " [0.66362625, 3.7603791 ],\n", + " [0.66634874, 3.7575538 ],\n", + " [0.66907121, 3.7552056 ],\n", + " [0.67179369, 3.7533159 ],\n", + " [0.67451616, 3.7507198 ],\n", + " [0.67723865, 3.7487535 ],\n", + " [0.67996113, 3.7471499 ],\n", + " [0.68268361, 3.7442865 ],\n", + " [0.68540608, 3.7423012 ],\n", + " [0.68812855, 3.7400677 ],\n", + " [0.69085103, 3.7385788 ],\n", + " [0.6935735 , 3.7345319 ],\n", + " [0.69629597, 3.7339211 ],\n", + " [0.69901843, 3.7301605 ],\n", + " [0.7017409 , 3.7301033 ],\n", + " [0.70446338, 3.7278316 ],\n", + " [0.70718585, 3.7251589 ],\n", + " [0.70990833, 3.723861 ],\n", + " [0.71263081, 3.7215703 ],\n", + " [0.71535328, 3.7191267 ],\n", + " [0.71807574, 3.7172751 ],\n", + " [0.72079822, 3.7157097 ],\n", + " [0.72352069, 3.7130945 ],\n", + " [0.72624317, 3.7099447 ],\n", + " [0.72896564, 3.7071004 ],\n", + " [0.7316881 , 3.7045615 ],\n", + " [0.73441057, 3.703588 ],\n", + " [0.73713303, 3.70208 ],\n", + " [0.73985551, 3.7002664 ],\n", + " [0.74257799, 3.6972122 ],\n", + " [0.74530047, 3.6952841 ],\n", + " [0.74802293, 3.6929362 ],\n", + " [0.7507454 , 3.6898055 ],\n", + " [0.75346787, 3.6890991 ],\n", + " [0.75619034, 3.686522 ],\n", + " [0.75891281, 3.6849759 ],\n", + " [0.76163529, 3.6821697 ],\n", + " [0.76435776, 3.6808143 ],\n", + " [0.76708024, 3.6786573 ],\n", + " [0.7698027 , 3.6761947 ],\n", + " [0.77252517, 3.674763 ],\n", + " [0.77524765, 3.6712887 ],\n", + " [0.77797012, 3.6697233 ],\n", + " [0.78069258, 3.6678908 ],\n", + " [0.78341506, 3.6652565 ],\n", + " [0.78613753, 3.6630611 ],\n", + " [0.78885999, 3.660274 ],\n", + " [0.79158246, 3.6583652 ],\n", + " [0.79430494, 3.6554828 ],\n", + " [0.79702741, 3.6522949 ],\n", + " [0.79974987, 3.6499848 ],\n", + " [0.80247234, 3.6470451 ],\n", + " [0.8051948 , 3.6405547 ],\n", + " [0.80791727, 3.6383405 ],\n", + " [0.81063974, 3.635076 ],\n", + " [0.81336221, 3.633549 ],\n", + " [0.81608468, 3.6322317 ],\n", + " [0.81880714, 3.6306856 ],\n", + " [0.82152961, 3.6283948 ],\n", + " [0.82425208, 3.6268487 ],\n", + " [0.82697453, 3.6243098 ],\n", + " [0.829697 , 3.6223626 ],\n", + " [0.83241946, 3.6193655 ],\n", + " [0.83514192, 3.6177621 ],\n", + " [0.83786439, 3.6158531 ],\n", + " [0.84058684, 3.6128371 ],\n", + " [0.84330931, 3.6118062 ],\n", + " [0.84603177, 3.6094582 ],\n", + " [0.84875424, 3.6072438 ],\n", + " [0.8514767 , 3.6049912 ],\n", + " [0.85419916, 3.6030822 ],\n", + " [0.85692162, 3.6012688 ],\n", + " [0.85964409, 3.5995889 ],\n", + " [0.86236656, 3.5976417 ],\n", + " [0.86508902, 3.5951984 ],\n", + " [0.86781149, 3.593843 ],\n", + " [0.87053395, 3.5916286 ],\n", + " [0.87325642, 3.5894907 ],\n", + " [0.87597888, 3.587429 ],\n", + " [0.87870135, 3.5852909 ],\n", + " [0.88142383, 3.5834775 ],\n", + " [0.8841463 , 3.5817785 ],\n", + " [0.88686877, 3.5801177 ],\n", + " [0.88959124, 3.5778842 ],\n", + " [0.89231371, 3.5763381 ],\n", + " [0.8950362 , 3.5737801 ],\n", + " [0.89775868, 3.5721002 ],\n", + " [0.90048116, 3.5702102 ],\n", + " [0.90320364, 3.5684922 ],\n", + " [0.90592613, 3.5672133 ],\n", + " [1. , 3.52302167]])\n", + "\n", + "from pybamm import exp, constants\n", + "\n", + "\n", + "def graphite_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_n_max, T):\n", + " m_ref = 6.48e-7 # (A/m2)(m3/mol)**1.5 - includes ref concentrations\n", + " E_r = 35000\n", + " arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T))\n", + "\n", + " return (\n", + " m_ref * arrhenius * c_e ** 0.5 * c_s_surf ** 0.5 * (c_n_max - c_s_surf) ** 0.5\n", + " )\n", + "\n", + "def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_p_max, T):\n", + " m_ref = 3.42e-6 # (A/m2)(m3/mol)**1.5 - includes ref concentrations\n", + " E_r = 17800\n", + " arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T))\n", + "\n", + " return (\n", + " m_ref * arrhenius * c_e ** 0.5 * c_s_surf ** 0.5 * (c_p_max - c_s_surf) ** 0.5\n", + " )\n", + "\n", + "\n", + "values = {\n", + " 'Negative electrode thickness [m]': 8.52e-05,\n", + " 'Separator thickness [m]': 1.2e-05,\n", + " 'Positive electrode thickness [m]': 7.56e-05,\n", + " 'Electrode height [m]': 0.065,\n", + " 'Electrode width [m]': 1.58,\n", + " 'Nominal cell capacity [A.h]': 5.0,\n", + " 'Typical current [A]': 5.0,\n", + " 'Current function [A]': 5.0,\n", + " 'Maximum concentration in negative electrode [mol.m-3]': 33133.0,\n", + " 'Negative electrode diffusivity [m2.s-1]': 3.3e-14,\n", + " 'Negative electrode OCP [V]': ('graphite_LGM50_ocp_Chen2020', neg_ocp),\n", + " 'Negative electrode porosity': 0.25,\n", + " 'Negative electrode active material volume fraction': 0.75,\n", + " 'Negative particle radius [m]': 5.86e-06,\n", + " 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5,\n", + " 'Negative electrode Bruggeman coefficient (electrode)': 1.5,\n", + " 'Negative electrode electrons in reaction': 1.0,\n", + " 'Negative electrode exchange-current density [A.m-2]': graphite_LGM50_electrolyte_exchange_current_density_Chen2020,\n", + " 'Negative electrode OCP entropic change [V.K-1]': 0.0,\n", + " 'Maximum concentration in positive electrode [mol.m-3]': 63104.0,\n", + " 'Positive electrode diffusivity [m2.s-1]': 4e-15,\n", + " 'Positive electrode OCP [V]': ('nmc_LGM50_ocp_Chen2020', pos_ocp),\n", + " 'Positive electrode porosity': 0.335,\n", + " 'Positive electrode active material volume fraction': 0.665,\n", + " 'Positive particle radius [m]': 5.22e-06,\n", + " 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5,\n", + " 'Positive electrode Bruggeman coefficient (electrode)': 1.5,\n", + " 'Positive electrode electrons in reaction': 1.0,\n", + " 'Positive electrode exchange-current density [A.m-2]': nmc_LGM50_electrolyte_exchange_current_density_Chen2020,\n", + " 'Positive electrode OCP entropic change [V.K-1]': 0.0,\n", + " 'Separator porosity': 0.47,\n", + " 'Separator Bruggeman coefficient (electrolyte)': 1.5,\n", + " 'Typical electrolyte concentration [mol.m-3]': 1000.0,\n", + " 'Reference temperature [K]': 298.15,\n", + " 'Ambient temperature [K]': 298.15,\n", + " 'Number of electrodes connected in parallel to make a cell': 1.0,\n", + " 'Number of cells connected in series to make a battery': 1.0,\n", + " 'Lower voltage cut-off [V]': 2.5,\n", + " 'Upper voltage cut-off [V]': 4.4,\n", + " 'Initial concentration in negative electrode [mol.m-3]': 29866.0,\n", + " 'Initial concentration in positive electrode [mol.m-3]': 17038.0,\n", + " 'Initial temperature [K]': 298.15\n", + "}\n", + "param = pybamm.ParameterValues(values)\n", + "param" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we would have got the same result by doing" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'Negative electrode thickness [m]': 8.52e-05,\n", + " 'Separator thickness [m]': 1.2e-05,\n", + " 'Positive electrode thickness [m]': 7.56e-05,\n", + " 'Electrode height [m]': 0.065,\n", + " 'Electrode width [m]': 1.58,\n", + " 'Nominal cell capacity [A.h]': 5.0,\n", + " 'Typical current [A]': 5.0,\n", + " 'Current function [A]': 5.0,\n", + " 'Maximum concentration in negative electrode [mol.m-3]': 33133.0,\n", + " 'Negative electrode diffusivity [m2.s-1]': 3.3e-14,\n", + " 'Negative electrode OCP [V]': ,\n", + " 'Negative electrode porosity': 0.25,\n", + " 'Negative electrode active material volume fraction': 0.75,\n", + " 'Negative particle radius [m]': 5.86e-06,\n", + " 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5,\n", + " 'Negative electrode Bruggeman coefficient (electrode)': 1.5,\n", + " 'Negative electrode electrons in reaction': 1.0,\n", + " 'Negative electrode exchange-current density [A.m-2]': ,\n", + " 'Negative electrode OCP entropic change [V.K-1]': 0.0,\n", + " 'Maximum concentration in positive electrode [mol.m-3]': 63104.0,\n", + " 'Positive electrode diffusivity [m2.s-1]': 4e-15,\n", + " 'Positive electrode OCP [V]': ,\n", + " 'Positive electrode porosity': 0.335,\n", + " 'Positive electrode active material volume fraction': 0.665,\n", + " 'Positive particle radius [m]': 5.22e-06,\n", + " 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5,\n", + " 'Positive electrode Bruggeman coefficient (electrode)': 1.5,\n", + " 'Positive electrode electrons in reaction': 1.0,\n", + " 'Positive electrode exchange-current density [A.m-2]': ,\n", + " 'Positive electrode OCP entropic change [V.K-1]': 0.0,\n", + " 'Separator porosity': 0.47,\n", + " 'Separator Bruggeman coefficient (electrolyte)': 1.5,\n", + " 'Typical electrolyte concentration [mol.m-3]': 1000.0,\n", + " 'Reference temperature [K]': 298.15,\n", + " 'Ambient temperature [K]': 298.15,\n", + " 'Number of electrodes connected in parallel to make a cell': 1.0,\n", + " 'Number of cells connected in series to make a battery': 1.0,\n", + " 'Lower voltage cut-off [V]': 2.5,\n", + " 'Upper voltage cut-off [V]': 4.2,\n", + " 'Initial concentration in negative electrode [mol.m-3]': 29866.0,\n", + " 'Initial concentration in positive electrode [mol.m-3]': 17038.0,\n", + " 'Initial temperature [K]': 298.15}" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "param_same = pybamm.ParameterValues(\"Chen2020\")\n", + "{k: v for k,v in param_same.items() if k in spm._parameter_info}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Updating a specific parameter" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once a parameter set has been defined (either via a dictionary or a pre-built set), single parameters can be updated" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using a constant value:" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Current function [A]\t5.0\n" + ] + }, + { + "data": { + "text/plain": [ + "4.0" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "param.search(\"Current function [A]\")\n", + "\n", + "param.update(\n", + " {\n", + " \"Current function [A]\": 4.0\n", + " }\n", + ")\n", + "\n", + "param[\"Current function [A]\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using a function:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def curren_func(time):\n", + " return 1 + pybamm.sin(2 * np.pi * time / 60)\n", + "\n", + "param.update(\n", + " {\n", + " \"Current function [A]\": curren_func\n", + " }\n", + ")\n", + "\n", + "param[\"Current function [A]\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plotting parameter functions\n", + "\n", + "As seen above, functions can be passed as parameter values. These parameter values can then be plotted by using `pybamm.plot`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Plotting \"Current function \\[A]\"" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "currentfunc = param[\"Current function [A]\"]\n", + "time = pybamm.linspace(0, 120, 60)\n", + "evaluated = param.evaluate(currentfunc(time))\n", + "evaluated = pybamm.Array(evaluated)\n", + "pybamm.plot(time, evaluated)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Taking another such example:\n", + "\n", + "### Plotting \"Negative electrode exchange-current density \\[A.m-2]\"" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "negative_electrode_exchange_current_density = param[\"Negative electrode exchange-current density [A.m-2]\"]\n", + "x = pybamm.linspace(3000,6000,100)\n", + "c_n_max = param[\"Maximum concentration in negative electrode [mol.m-3]\"]\n", + "evaluated = param.evaluate(negative_electrode_exchange_current_density(1000,x,c_n_max,300))\n", + "evaluated = pybamm.Array(evaluated)\n", + "pybamm.plot(x, evaluated)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Simulating and solving the model\n", + "\n", + "Finally we can simulate the model and solve it using `pybamm.Simulation` and `solve` respectively." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "295e29ce453c47a9a38d9ba176e038b8", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "interactive(children=(FloatSlider(value=0.0, description='t', max=3599.0, step=35.99), Output()), _dom_classes…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim = pybamm.Simulation(spm, parameter_values=param)\n", + "t_eval = np.arange(0, 3600, 1)\n", + "sim.solve(t_eval=t_eval)\n", + "sim.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## References\n", + "The relevant papers for this notebook are:" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1] Joel A. E. Andersson, Joris Gillis, Greg Horn, James B. Rawlings, and Moritz Diehl. CasADi – A software framework for nonlinear optimization and optimal control. Mathematical Programming Computation, 11(1):1–36, 2019. doi:10.1007/s12532-018-0139-4.\n", + "[2] Chang-Hui Chen, Ferran Brosa Planella, Kieran O'Regan, Dominika Gastol, W. Dhammika Widanage, and Emma Kendrick. Development of Experimental Techniques for Parameterization of Multi-scale Lithium-ion Battery Models. Journal of The Electrochemical Society, 167(8):080534, 2020. doi:10.1149/1945-7111/ab9050.\n", + "[3] Charles R. Harris, K. Jarrod Millman, Stéfan J. van der Walt, Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, Julian Taylor, Sebastian Berg, Nathaniel J. Smith, and others. Array programming with NumPy. Nature, 585(7825):357–362, 2020. doi:10.1038/s41586-020-2649-2.\n", + "[4] Scott G. Marquis, Valentin Sulzer, Robert Timms, Colin P. Please, and S. Jon Chapman. An asymptotic derivation of a single particle model with electrolyte. Journal of The Electrochemical Society, 166(15):A3693–A3706, 2019. doi:10.1149/2.0341915jes.\n", + "[5] Valentin Sulzer, Scott G. Marquis, Robert Timms, Martin Robinson, and S. Jon Chapman. Python Battery Mathematical Modelling (PyBaMM). Journal of Open Research Software, 9(1):14, 2021. doi:10.5334/jors.309.\n", + "[6] Pauli Virtanen, Ralf Gommers, Travis E. Oliphant, Matt Haberland, Tyler Reddy, David Cournapeau, Evgeni Burovski, Pearu Peterson, Warren Weckesser, Jonathan Bright, and others. SciPy 1.0: fundamental algorithms for scientific computing in Python. Nature Methods, 17(3):261–272, 2020. doi:10.1038/s41592-019-0686-2.\n", + "\n" + ] + } + ], + "source": [ + "pybamm.print_citations()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": true + }, + "vscode": { + "interpreter": { + "hash": "612adcc456652826e82b485a1edaef831aa6d5abc680d008e93d513dd8724f14" + } + } }, - { - "data": { - "text/plain": [ - "4.0" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "param.search(\"Current function [A]\")\n", - "\n", - "param.update(\n", - " {\n", - " \"Current function [A]\": 4.0\n", - " }\n", - ")\n", - "\n", - "param[\"Current function [A]\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Using a function:" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "def curren_func(time):\n", - " return 1 + pybamm.sin(2 * np.pi * time / 60)\n", - "\n", - "param.update(\n", - " {\n", - " \"Current function [A]\": curren_func\n", - " }\n", - ")\n", - "\n", - "param[\"Current function [A]\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Plotting parameter functions\n", - "\n", - "As seen above, functions can be passed as parameter values. These parameter values can then be plotted by using `pybamm.plot`" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Plotting \"Current function \\[A]\"" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "currentfunc = param[\"Current function [A]\"]\n", - "time = pybamm.linspace(0, 120, 60)\n", - "evaluated = param.evaluate(currentfunc(time))\n", - "evaluated = pybamm.Array(evaluated)\n", - "pybamm.plot(time, evaluated)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Taking another such example:\n", - "\n", - "### Plotting \"Negative electrode exchange-current density \\[A.m-2]\"" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD4CAYAAADiry33AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAmV0lEQVR4nO3dd3xV9f3H8deHsJEZhkgSlsgeyhVwixOqlWqr4qDa2qL81NpqVeygVuuom7YqpUhr68CFSlEEtOJCkIQdICEQRogIxLBHSPL5/XEv9jYmcIEkd+T9fDzyyD3nfO/N58sxb0++55zvMXdHREQSV61oFyAiIlVLQS8ikuAU9CIiCU5BLyKS4BT0IiIJrna0CyhPy5YtvUOHDtEuQ0QkbmRkZGxx91blbYvJoO/QoQPp6enRLkNEJG6Y2dqKtmnoRkQkwSnoRUQSnIJeRCTBKehFRBKcgl5EJMEp6EVEEpyCXkQkwSnoRUSizN35ZOVmxn20qko+PyZvmBIRqQncnY9XbmHs+9nMX7eVlOYNuP7UDtSvk1SpP0dBLyJSzQ4E/FPvZ7Ng3VaOa1qfP3yvF5cHUqhXu3JDHhT0IiLVproD/gAFvYhIFQuOwQcDfn4o4B+4tBeX90+lbu2qP1WqoBcRqSLuzmc5BTz5fjYZawurPeAPUNCLiFSB2au28OTMbOatKaRtNQ3RVERBLyJSieauLuCJmdnMzf2aNk3qcf+wnlxxcmpUAv4ABb2ISCXIWPs1T8zM5rOcAlo1rse93+3B8AFplX6p5JFQ0IuIHIVF67fyxMxsPsreTMtj6vKbi7pz7aD2MRHwByjoRUSOQGb+Np6cmc37yzfRvGEdRg/txg9PaU/DurEXq7FXkYhIDFv51Q6efD+bd5dspEn92vzyghO4/rSOHFMvduM0osrMbAgwFkgCJrj7w2W2XwPcHVrcCYxy90Whbb8AfgI4sAT4kbvvrZzyRUSqR+6WXYx9P5u3F+XTsE4SPzvneG44oxNNG9SJdmmHdMigN7Mk4GngfCAPmGdmU9x9WVizXOAsdy80s6HAeGCgmbUDfgb0cPc9ZvYqMBz4RyX3Q0SkSuQV7ubPH+Tw+vw86iQZN57ZmRvP7ETzRnWjXVrEIjmiHwDkuPtqADObBAwDvgl6d58d1n4OkFLmZzQws/1AQyD/aIsWEalqm7bv5ekPc3jpi3UYxohB7fm/wZ1p3bh+tEs7bJEEfTtgfdhyHjDwIO1vAKYBuPsGM3sMWAfsAWa4+4zy3mRmI4GRAGlpaRGUJSJS+Qp3FTHuo1U8//kaikucywOp3HrO8RzXrEG0SztikQS9lbPOy21oNphg0J8eWm5O8Oi/I7AVeM3MrnX3F771ge7jCQ75EAgEyv18EZGqsmPvfp77NJcJn+Syq6iY7/Vrx8/P60L75EbRLu2oRRL0eUBq2HIK5Qy/mFkfYAIw1N0LQqvPA3LdfXOozWTgVOBbQS8iEg1795fwz8/X8OysVRTu3s+FPdtwxwVdOaFN42iXVmkiCfp5QBcz6whsIHgy9erwBmaWBkwGRrh7dtimdcAgM2tIcOjmXCC9MgoXETka+0tKeTV9PX/6YCVfbd/HGV1a8ssLutI3tVm0S6t0hwx6dy82s1uA6QQvr5zo7plmdlNo+zhgDJAMPGNmAMXuHnD3uWb2OjAfKAYWEBqeERGJhtJS59+L83liZjZrC3bTv31znrryRE7pnBzt0qqMucfecHggEPD0dB34i0jlcXf+s2ITj07PYsXGHXQ7tjF3DenK4K6tCR2gxjUzy3D3QHnbYvdWLhGRSjJ3dQGPTM8iY20hHZIbMnZ4P77b5zhq1Yr/gI+Egl5EElZm/jYenZ7FrKzNtGlSjwcu7cUVgVTqJFXfQz9igYJeRBLO2oJdPD4jmymL8mnaoA73DO3Gdad2iKkZJauTgl5EEsamHXv5y39yeGnuOmonGTcP7szIMzvHxXw0VUlBLyJxb8fe/Yz/eDXPfZrLvuJShp+cym3ndqF1k/ibrqAqKOhFJG7tKy7hxTnr+MuHOXy9q4iL+rTllxd0pWPL+L+btTIp6EUk7pSWOm8v2sDjM7LJK9zDaccnc/eQbvRJaRbt0mKSgl5E4oa78/HKLTw8bQXLv9xOz+Oa8NBlvTmjS6tolxbTFPQiEheW5G3joWnLmb2qgNQWDWrctfBHQ0EvIjFtXcFuHp2Rxb8X5dOiUV3GXNyDawalUa92zbxU8kgo6EUkJn29q4g//2clL8xZS1It49ZzjmfkmZ1oXL9mXyp5JBT0IhJT9u4vYeJnuTz74Sp2FRVz5cmp/Py8E2ijSyWPmIJeRGJCSakzeX4eT8zM5sttezm3W2tGD+1GlwSaFz5aFPQiEnUfZW/moXeXs2LjDvqmNOXJK/sxqFPiThtc3RT0IhI1y/K389C05XyycgupLRrw56tO5KLebXUlTSVT0ItItdu4bS+Pz8ji9fl5NKlfh99c1J0Rp7TXlTRVREEvItVm575ixn+0ivGfrKa0FH5yekduGdyFpg11JU1VUtCLSJUrLinltYw8Hp+RzZad+7ik73HceWFXUls0jHZpNYKCXkSq1KysTTz47nKyv9pJoH1z/vbD/pyY1jzaZdUoEQW9mQ0BxhJ8OPgEd3+4zPZrgLtDizuBUe6+yMy6Aq+ENe0EjHH3p462cBGJbSs2bueBd4InWtsnN+TZa05iSK9jE+L5rPHmkEFvZknA08D5QB4wz8ymuPuysGa5wFnuXmhmQ4HxwEB3zwL6hX3OBuDNyu2CiMSSTTv28uTMbF6Zt57GoROtPzylA3Vr16zH98WSSI7oBwA57r4awMwmAcOAb4Le3WeHtZ8DpJTzOecCq9x97ZGXKyKxau/+Ep77NJdnPsxhX3Ep153agdvO7UKzhnWjXVqNF0nQtwPWhy3nAQMP0v4GYFo564cDL1f0JjMbCYwESEtLi6AsEYkF7s6URfk88l4WG7bu4YIebRg9tBudWh0T7dIkJJKgL29AzcttaDaYYNCfXmZ9XeAS4J6Kfoi7jyc45EMgECj380UktsxfV8j9U5exYN1WerRtwqOX9+HUzi2jXZaUEUnQ5wGpYcspQH7ZRmbWB5gADHX3gjKbhwLz3f2rIy1URGLHhq17+OO0FUxZlE+rxvV45Ad9+P5JKSTpjtaYFEnQzwO6mFlHgidThwNXhzcwszRgMjDC3bPL+YyrOMiwjYjEh137ivnrR6v468erAbj1nOO56azONKqnK7Vj2SH3jrsXm9ktwHSCl1dOdPdMM7sptH0cMAZIBp4JXTpV7O4BADNrSPCKnRurpgsiUtVKS503F2zgkekr+Gp78Ianu4d2o12zBtEuTSJg7rE3HB4IBDw9PT3aZYgIkLG2kPumLmPR+q30TW3GmIt70L+9bniKNWaWceAAuyz9vSUi5crfuoeHQ+PwbZrU44kr+vK9fu00s2QcUtCLyP/YU1TCXz9exbiPVuEOPzvneG7UOHxc054TESB4PfzUxV/y0LvLyd+2l4v6tOWeod1Iaa6Jx+Kdgl5EWLphG7//dybz1hTS87gmPDX8RAZ0bBHtsqSSKOhFarCCnft4bEYWk+atp3nDujx0WW+uCKTqevgEo6AXqYH2l5Tyz8/X8tT72ewpKuHHp3XkZ+d2oWkDPQAkESnoRWqYT1Zu5vf/XkbOpp2ceUIrxlzcneNbN452WVKFFPQiNcS6gt384Z1lzFj2Fe2TG/K3HwY4r3trzQ9fAyjoRRLcnqISnp2Vw7iPV1O7lnHXkK7ccHpHPYi7BlHQiyQod+fdJRt54J1l5G/by7B+x3HP0O4c27R+tEuTaqagF0lAK7/awe+mZDJ7VQHd2+pyyZpOQS+SQLbv3c/Y91fy/Ow1NKpXm/uH9eTqge11uWQNp6AXSQAHZpd8aNoKCnbtY/jJadx5YVdaNNJj/ERBLxL3lm7Yxu+mZJKxtpB+qc2YeH2APinNol2WxBAFvUic2rZ7P4/PzOKFOWtp3rAuj/ygDz84KUWzS8q3KOhF4kxpqfP6/Dz+OG0FhbuLGDGoPbef35WmDXVXq5RPQS8SR5Zu2MaYt5cyf91W+rdvzj+HDaDncU2jXZbEOAW9SBzYtmc/T8zI4l+hYZrHLu/LZSfqISASmYiC3syGAGMJPjN2grs/XGb7NcDdocWdwCh3XxTa1gyYAPQCHPixu39eKdWLJDh3Z/L8DTw0bTlf7yri2kHtueOCrpp8TA7LIYPezJKApwk+4DsPmGdmU9x9WVizXOAsdy80s6HAeGBgaNtY4D13/4GZ1QX0FAORCGRt3MFv31rKF2u+pl9qM/7xowH0aqdhGjl8kRzRDwBy3H01gJlNAoYB3wS9u88Oaz8HSAm1bQKcCVwfalcEFFVG4SKJate+YsZ+sJLnPs2lcf3aPByaI17DNHKkIgn6dsD6sOU8/nu0Xp4bgGmh152AzcDfzawvkAHc5u67yr7JzEYCIwHS0tIiKEsksbg77y3dyO//vYyN2/cy/ORU7hrSTTc9yVGrFUGb8g4jvNyGZoMJBv2B8frawEnAs+5+IrALGF3ee919vLsH3D3QqlWrCMoSSRxrC3Zx/d/nMerF+bRoVJc3Rp3Kw9/vo5CXShHJEX0ekBq2nALkl21kZn0InnQd6u4FYe/Nc/e5oeXXqSDoRWqifcUljJu1mqdn5VA3qRa/+24PRgxqT+2kSI7BRCITSdDPA7qYWUdgAzAcuDq8gZmlAZOBEe6efWC9u280s/Vm1tXds4BzCRvbF6nJPl25hd++vZTcLbu4uE9bfntxD9o00RTCUvkOGfTuXmxmtwDTCV5eOdHdM83sptD2ccAYIBl4JvS0mmJ3D4Q+4lbgxdAVN6uBH1V+N0Tix6Yde3ngneW8vTCfDskN+eePB3DmCRqulKpj7uUOt0dVIBDw9PT0aJchUqlKSp2XvljHI++tYN/+Ukad3ZlRZ3emfh096UmOnpllhB1g/w/dGStSDTLzt/GrN5eyaP1WTjs+mfuH9aJTq2OiXZbUEAp6kSq0a18xT8zM5u+f5dKiUV3GDu/HJX2P0wO5pVop6EWqyIzMjdw7JZP8bXu5emAad1/YTTNMSlQo6EUq2Zfb9vC7tzOZsewrurZpzBtXn0j/9npeq0SPgl6kkpSUOv/8fA2PTc+ixJ27hnTlp2d0oo6uiZcoU9CLVILM/G38avISFuVt48wTWvGHYb1IS9b8fRIbFPQiR2F3UTFPvR+cgKx5wzr86aoT+W6ftjrZKjFFQS9yhGZlbeI3by0lr3APVw1IZfSQ7jrZKjFJQS9ymLbs3Mf9U5fx9sJ8OrVqxCsjBzGwU3K0yxKpkIJeJELuzmsZeTz47nJ27yvh5+d1YdTZnalXW3e2SmxT0ItEYM2WXfz6rSV8llPAyR2a89BlvTm+deNolyUSEQW9yEEUl5Qy4dNcnpyZTd2kWjxwaS+uOjlNT3uSuKKgF6nA0g3buPuNxWTmb+fCnm24b1gvTSMscUlBL1LGnqISnnw/mwmfrKblMfUYd+1JDOnVNtpliRwxBb1ImNk5W7jnzSWsLdjN8JNTuec73WnaQJdMSnxT0IsA2/bs56F3lzNp3no6JDfkpZ8O5NTOLaNdlkilUNBLjTc9cyO/fWspBbuKuPGsTvzivBP0MBBJKAp6qbE279jHvVMyeWfJl3Rv24TnrjuZ3ilNo12WSKWLKOjNbAgwluAzYye4+8Nltl8D3B1a3AmMcvdFoW1rgB1ACf/7LFmRqHB33lywgfumLmP3vhLuvLArI8/ULJOSuA4Z9GaWBDwNnA/kAfPMbIq7Lwtrlguc5e6FZjYUGA8MDNs+2N23VGLdIkckf+sefvXmEmZlbaZ/++b88ft9OL61HukniS2SI/oBQI67rwYws0nAMOCboHf32WHt5wAplVmkyNFyd17+Yj0PvrucklJnzMU9uO7UDiTpxiepASIJ+nbA+rDlPP73aL2sG4BpYcsOzDAzB/7q7uPLe5OZjQRGAqSlpUVQlkhk1hXsZvTkxcxeVcCpnZN5+LI+miteapRIgr68Qx4vt6HZYIJBf3rY6tPcPd/MWgMzzWyFu3/8rQ8M/g9gPEAgECj380UOR2mp8/zna3jkvSySahkPXtqbqwakaq54qXEiCfo8IDVsOQXIL9vIzPoAE4Ch7l5wYL2754e+bzKzNwkOBX0r6EUq0+rNO7nr9cWkry3k7K6tePDS3hzXrEG0yxKJikiCfh7Qxcw6AhuA4cDV4Q3MLA2YDIxw9+yw9Y2AWu6+I/T6AuC+yipepKySUmfip7k8NiOLerVr8fjlfbnspHY6ipca7ZBB7+7FZnYLMJ3g5ZUT3T3TzG4KbR8HjAGSgWdCv1AHLqNsA7wZWlcbeMnd36uSnkiNl7NpJ3e9voj567ZyXvc2PHhpL1prEjIRzD32hsMDgYCnp6dHuwyJEyWlzoRPVvP4zGwa1k3i3u/2ZFi/43QULzWKmWVUdJ+S7oyVuJazaSe/fG0RC9dv5YIebfjDpb1o3VhH8SLhFPQSl8oexY8d3o9L+uooXqQ8CnqJO6s27+TO14Jj8TqKFzk0Bb3EjZJS5++f5fLo9Czq10niqSv7aSxeJAIKeokLawt28cvXFjFvTSHndW/Ng5f21hU1IhFS0EtMKy11Xpy7lgffXUHtJOOxy/vyfV0XL3JYFPQSszZs3cNdry/is5wCzjyhFX/8fm/aNtXdrSKHS0EvMcfdeS09j/umLsPdNUeNyFFS0EtM2bR9L/dMXsIHKzYxsGMLHru8L6ktNNOkyNFQ0EvMmLo4n9+8tZQ9RSX89uIe/OjUDtTSfPEiR01BL1G3dXcRY97OZMqifPqmNOXxK/rpqU8ilUhBL1E1K2sTd72+mK93FXH7+Sfwf2d3prae3SpSqRT0EhW7i4p54J3lvDh3HV1aH8PE60+mV7um0S5LJCEp6KXaZawt5PZXF7Lu69389IyO3HFBV+rXSYp2WSIJS0Ev1aaouJQ/fbCSZ2bl0LZpA176ySBO6Zwc7bJEEp6CXqrFyq928PNXFpKZv50f9E/hd9/tQeP6daJdlkiNoKCXKnXgAd0PT1tBo3q1GXdtf4b0OjbaZYnUKAp6qTIbt+3lztcX8cnKLZzTrTUPf7+3phMWiYKIrmMzsyFmlmVmOWY2upzt15jZ4tDXbDPrW2Z7kpktMLOplVW4xLapi/O58KmPSV9TyAOX9uK56wIKeZEoOeQRvZklAU8D5wN5wDwzm+Luy8Ka5QJnuXuhmQ0FxgMDw7bfBiwHmlRa5RKTtu/dz71vZzJ5wQb6pTbjySv70bFlo2iXJVKjRTJ0MwDIcffVAGY2CRgGfBP07j47rP0cIOXAgpmlABcBDwC3V0LNEqO+yP2aX7yykI3b93LbuV249ZzjdfOTSAyIJOjbAevDlvP436P1sm4ApoUtPwXcBTQ+2A8xs5HASIC0tLQIypJYUVRcytgPsnl21ipSWzTk1RtPoX/75tEuS0RCIgn68maV8nIbmg0mGPSnh5YvBja5e4aZnX2wH+Lu4wkO+RAIBMr9fIk9qzbv5OeTFrJkwzauCKQw5rs9OaaezvGLxJJIfiPzgNSw5RQgv2wjM+sDTACGuntBaPVpwCVm9h2gPtDEzF5w92uPrmyJNnfn5S/Wc//UZdSrU4tx157EkF5to12WiJQjkqCfB3Qxs47ABmA4cHV4AzNLAyYDI9w9+8B6d78HuCfU5mzglwr5+Pf1riLufmMxM5d9xRldWvLY5X1po+e3isSsQwa9uxeb2S3AdCAJmOjumWZ2U2j7OGAMkAw8E3oKULG7B6qubImWT1Zu5o5XF7F1935+c1F3fnxaR80ZLxLjzD32hsMDgYCnp6dHuwwJs6+4hMemZ/G3T3I5vvUxjB3ej57HabZJkVhhZhkVHWDrrJkcUs6mnfzs5QUs+3I7Iwa159cXdddskyJxREEvFTpwwvW+qZk0rFubCT8McF6PNtEuS0QOk4JeyrV1dxGj31jCe5kbOaNLSx6/vC+tdcJVJC4p6OVb5qwu4BevLGTLzn386jvd+MnpnXTCVSSOKejlG8UlpYz9YCV/+TCHDsmNeGPUqfRJaRbtskTkKCnoBYD1X+/mtkkLmL9uKz/on8LvL+lJI93hKpIQ9JssvLP4S0ZPXgwOY4f3Y1i/dtEuSUQqkYK+BttTVMJ9UzN5+Yv19Ettxp+Gn0hacsNolyUilUxBX0Ot2LidW19aQM7mnYw6uzO3n38CdTSlsEhCUtDXMO7Oi3PXcf/UZTSuX4d//Xggp3dpGe2yRKQKKehrkG179jP6jcVMWxq8Nv6JK/rRqnG9aJclIlVMQV9DLFhXyK0vL2Djtr2MHtqNkWfo2niRmkJBn+BKS50Jn67mkfeyOLZpfV696RROStPTn0RqEgV9AivYuY87XlvErKzNDO11LA9/vw9NG9SJdlkiUs0U9Alq7uoCfjZpAYW79nP/sJ5cO6g9oWcFiEgNo6BPMCWlzjMf5vDk+9m0T27ExOtP1rzxIjWcgj6BbN6xj9tfXcgnK7cwrN9xPHBpbz2oW0QU9Ini81XBoZrte/bz8GW9ufLkVA3ViAgAEd0KaWZDzCzLzHLMbHQ5268xs8Whr9lm1je0vr6ZfWFmi8ws08x+X9kdqOlKSp0/fbCSaybMoXH92rx9y2kMH5CmkBeRbxzyiN7MkoCngfOBPGCemU1x92VhzXKBs9y90MyGAuOBgcA+4Bx332lmdYBPzWyau8+p9J7UQFt27uMXrwSHar4XGqrRjJMiUlYkqTAAyHH31QBmNgkYBnwT9O4+O6z9HCAltN6BnaH1dUJfsfc08jg0d3UBt768gG0aqhGRQ4hk6KYdsD5sOS+0riI3ANMOLJhZkpktBDYBM919bnlvMrORZpZuZumbN2+OoKyaqbTUeWZWDlf9bQ6N6tXmrZs1VCMiBxfJEX15CVLuUbmZDSYY9Kd/09C9BOhnZs2AN82sl7sv/dYHuo8nOORDIBDQUX85CncVcfurC/kwazMX92nLQ5f1pnF93QAlIgcXSdDnAalhyylAftlGZtYHmAAMdfeCstvdfauZzQKGAN8Kejm4BesKufnF+WzZWaQboETksEQydDMP6GJmHc2sLjAcmBLewMzSgMnACHfPDlvfKnQkj5k1AM4DVlRS7TWCu/P3z3K54q+fU6uW8fqoUxhxSgeFvIhE7JBH9O5ebGa3ANOBJGCiu2ea2U2h7eOAMUAy8EwogIrdPQC0BZ4PXblTC3jV3adWTVcSz469+xn9xhLeWfIl53ZrzRNX9KNpQw3ViMjhseCFMbElEAh4enp6tMuIqqyNOxj1QgZrCnZx54XduPFMTSssIhUzs4zQAfa36KLrGPTmgjx+NXkpjerV5qWfDmJQp+RolyQicUxBH0P2FZdw37+X8eLcdQzo2IK/XHUirZvUj3ZZIhLnFPQxIq9wN//34nwW523jxrM6cecFXamth3WLSCVQ0MeAj7I3c9ukBZSUOH8d0Z8Lex4b7ZJEJIEo6KOotNT5839yeOqDbLq2acyz1/anY8tG0S5LRBKMgj5Ktu4u4hevBO9yvezEdjxwaW8a1E2KdlkikoAU9FGwdMM2Rr2YwcZte7n/e724dqDmqhGRqqOgr2avZ+Tx6zeX0LxhXV658RROSmse7ZJEJMEp6KtJUXEp903N5IU56zilUzJ/vvpEWh5TL9pliUgNoKCvBhu37WXUixksWLeVG8/sxJ0X6tJJEak+CvoqNnd1ATe/NJ/dRSU8ffVJXNSnbbRLEpEaRkFfRYKzTq7hgXeX075FQ17+6SC6tGkc7bJEpAZS0FeBPUUl3DN5MW8tzOe87m144sq+NNEDQkQkShT0lWz917u58V8ZLN+4nTvOP4GbBx+vWSdFJKoU9JXo05VbuOXl+ZSWOhOvO5nB3VpHuyQREQV9ZXB3JnySy0PTlnN862MYPyJAB01lICIxQkF/lPYUlXD3G4uZsiif7/Q+lkd/0JdG9fTPKiKxQ4l0FMLH4+8a0pVRZ3XWVAYiEnMU9Edo9qot3PzifIpLnYnXn8zgrhqPF5HYFNHtmWY2xMyyzCzHzEaXs/0aM1sc+pptZn1D61PN7EMzW25mmWZ2W2V3oLq5OxM/zWXEc1+QfEw9ptxyukJeRGLaIY/ozSwJeBo4H8gD5pnZFHdfFtYsFzjL3QvNbCgwHhgIFAN3uPt8M2sMZJjZzDLvjRt795fwm7eW8npGHuf3aMOTV/bjGI3Hi0iMiySlBgA57r4awMwmAcOAb8La3WeHtZ8DpITWfwl8GXq9w8yWA+3C3xsvvtq+lxv/lcHC9Vu57dwu3HZuF10fLyJxIZKgbwesD1vOI3i0XpEbgGllV5pZB+BEYG55bzKzkcBIgLS0tAjKqj4L1hVy478y2LmvmHHX9mdILz3qT0TiRyRj9OUdtnq5Dc0GEwz6u8usPwZ4A/i5u28v773uPt7dA+4eaNWqVQRlVY83MvK4cvwc6tWpxeT/O1UhLyJxJ5Ij+jwgNWw5Bcgv28jM+gATgKHuXhC2vg7BkH/R3ScfXbnVp7iklIenrWDCp7mc0imZZ645ieaN6ka7LBGRwxZJ0M8DuphZR2ADMBy4OryBmaUBk4ER7p4dtt6A54Dl7v5EpVVdxbbt3s+tkxbwcfZmrj+1A7++qDt1NH+8iMSpQwa9uxeb2S3AdCAJmOjumWZ2U2j7OGAMkAw8E7phqNjdA8BpwAhgiZktDH3kr9z93UrvSSVZtXknP30+nfWFu3n4st4MHxBb5wtERA6XuZc73B5VgUDA09PTq/3nfpy9mZtfmk/dpFo8e21/BnRsUe01iIgcCTPLCB1gf4suAue/Dwn5wzvLOKFNYyZcFyClecNolyUiUilqfNAXFZcy5u2lTJq3ngtCN0FpUjIRSSQ1OtG+3lXETS9k8EXu19wy+HhuP/8E3QQlIgmnxgZ99lc7uOH5eXy1fR9jh/djWL920S5JRKRK1Mig/3DFJm59eQEN6ibx6o2n0C+1WbRLEhGpMjUq6N2diZ+t4YF3ltG9bRMmXBegbdMG0S5LRKRK1Zig318SPOn68hfrGdLzWJ64si8N69aY7otIDVYjkm7r7iJGvTCfz1cXcPPgztxxfleddBWRGiPhgz53yy5+/I95bCjcwxNX9OWyk1KiXZKISLVK6KD/fFUBN72QQVIt46WfDiTQQXe6ikjNk7BB/2r6en795hLaJzdi4nUnk5asO11FpGZKuKAvLXUenZHFs7NWcUaXlvzl6pNo2qBOtMsSEYmahAr6PUUl3PHaQt5dspGrB6bx+0t6anphEanxEibot+3ezw///gWL87bym4u6c8PpHQlNmSwiUqMlTNAfU782HZIbcvPZnbmgpx73JyJyQMIEfVItY+zwE6NdhohIzNEAtohIglPQi4gkuIiC3syGmFmWmeWY2ehytl9jZotDX7PNrG/YtolmtsnMllZm4SIiEplDBr2ZJQFPA0OBHsBVZtajTLNc4Cx37wPcD4wP2/YPYEilVCsiIoctkiP6AUCOu6929yJgEjAsvIG7z3b3wtDiHCAlbNvHwNeVVK+IiBymSIK+HbA+bDkvtK4iNwDTDrcQMxtpZulmlr558+bDfbuIiFQgkqAv764jL7eh2WCCQX/34Rbi7uPdPeDugVatWh3u20VEpAKRXEefB6SGLacA+WUbmVkfYAIw1N0LKqc8ERE5WpEE/Tygi5l1BDYAw4GrwxuYWRowGRjh7tlHW1RGRsYWM1t7hG9vCWw52hpiRKL0JVH6AepLLEqUfsDR9aV9RRsOGfTuXmxmtwDTgSRgortnmtlNoe3jgDFAMvBMaH6ZYncPAJjZy8DZQEszywN+5+7PHeJnHvHYjZmlH/jZ8S5R+pIo/QD1JRYlSj+g6voS0RQI7v4u8G6ZdePCXv8E+EkF773qaAoUEZGjoztjRUQSXCIG/fhDN4kbidKXROkHqC+xKFH6AVXUF3Mv90pJERFJEIl4RC8iImEU9CIiCS7mg97M6pvZF2a2yMwyzez3ofUtzGymma0MfW8e9p57QjNtZpnZhWHr+5vZktC2P1k1P2vwIH2518w2mNnC0Nd3Yr0voRqSzGyBmU0NLcfdPjlIX+J1n6wJ1bDQzNJD6+Juv1TQj3jdJ83M7HUzW2Fmy83slGrfJ+4e018Ep2A4JvS6DjAXGAQ8AowOrR8N/DH0ugewCKgHdARWAUmhbV8Ap4Q+cxrBu3hjoS/3Ar8sp33M9iVUw+3AS8DU0HLc7ZOD9CVe98kaoGWZdXG3XyroR7zuk+eBn4Re1wWaVfc+ifkjeg/aGVqsE/pygjNoPh9a/zzwvdDrYcAkd9/n7rlADjDAzNoCTdz9cw/+q/0z7D3V4iB9qUjM9sXMUoCLCE57EV5vXO0TqLAvFYnpvlQgLvfLYYjZfphZE+BM4DkAdy9y961U8z6J+aCHb/6sXghsAma6+1ygjbt/CRD63jrUvKLZNtuFXpddX60q6AvALRZ8cMvEsD/jYrkvTwF3AaVh6+Jyn1B+XyD+9gkEDxxmmFmGmY0MrYvH/VJePyD+9kknYDPw99DQ4AQza0Q175O4CHp3L3H3fgQnVBtgZr0O0ryi2TYjnoWzKlXQl2eBzkA/4Evg8VDzmOyLmV0MbHL3jEjfUs66qPcDDtqXuNonYU5z95MIPijoZjM78yBtY7kv5fUjHvdJbeAk4Fl3PxHYRXCopiJV0pe4CPoDQn/yzCL4xKqvQn/OEPq+KdSsotk28wh7IAoVzMJZXcL74u5fhf4HUAr8jeDDXiB2+3IacImZrSH4IJpzzOwF4nOflNuXONwnALh7fuj7JuBNgnXH3X4prx9xuk/ygLywv9xfJxj81btPqvvExOF+Aa2AZqHXDYBPgIuBR/nfkxmPhF735H9PZqzmvycz5hE8+XngZMZ3YqQvbcPa/ILgGF1M9yWs3rP57wnMuNsnB+lL3O0ToBHQOOz1bIIHRXG1Xw7Sj7jbJ6EaPgG6hl7fG9of1bpPovILdZj/SH2ABcBiYCkwJrQ+GfgAWBn63iLsPb8meLY6i7Az00Ag9BmrgL8QujM4BvryL2BJaP2UMv9Bx2Rfwuo4m/+GY9ztk4P0Je72CcHx4EWhr0zg1/G4Xw7Sj7jbJ6Ea+gHpobrfAppX9z7RFAgiIgkursboRUTk8CnoRUQSnIJeRCTBKehFRBKcgl5EJMEp6EVEEpyCXkQkwf0/a08n+MRRGsUAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "negative_electrode_exchange_current_density = param[\"Negative electrode exchange-current density [A.m-2]\"]\n", - "x = pybamm.linspace(3000,6000,100)\n", - "c_n_max = param[\"Maximum concentration in negative electrode [mol.m-3]\"]\n", - "evaluated = param.evaluate(negative_electrode_exchange_current_density(1000,x,c_n_max,300))\n", - "evaluated = pybamm.Array(evaluated)\n", - "pybamm.plot(x, evaluated)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Simulating and solving the model\n", - "\n", - "Finally we can simulate the model and solve it using `pybamm.Simulation` and `solve` respectively." - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "295e29ce453c47a9a38d9ba176e038b8", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "interactive(children=(FloatSlider(value=0.0, description='t', max=3599.0, step=35.99), Output()), _dom_classes…" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sim = pybamm.Simulation(spm, parameter_values=param)\n", - "t_eval = np.arange(0, 3600, 1)\n", - "sim.solve(t_eval=t_eval)\n", - "sim.plot()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## References\n", - "The relevant papers for this notebook are:" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1] Joel A. E. Andersson, Joris Gillis, Greg Horn, James B. Rawlings, and Moritz Diehl. CasADi – A software framework for nonlinear optimization and optimal control. Mathematical Programming Computation, 11(1):1–36, 2019. doi:10.1007/s12532-018-0139-4.\n", - "[2] Chang-Hui Chen, Ferran Brosa Planella, Kieran O'Regan, Dominika Gastol, W. Dhammika Widanage, and Emma Kendrick. Development of Experimental Techniques for Parameterization of Multi-scale Lithium-ion Battery Models. Journal of The Electrochemical Society, 167(8):080534, 2020. doi:10.1149/1945-7111/ab9050.\n", - "[3] Charles R. Harris, K. Jarrod Millman, Stéfan J. van der Walt, Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, Julian Taylor, Sebastian Berg, Nathaniel J. Smith, and others. Array programming with NumPy. Nature, 585(7825):357–362, 2020. doi:10.1038/s41586-020-2649-2.\n", - "[4] Scott G. Marquis, Valentin Sulzer, Robert Timms, Colin P. Please, and S. Jon Chapman. An asymptotic derivation of a single particle model with electrolyte. Journal of The Electrochemical Society, 166(15):A3693–A3706, 2019. doi:10.1149/2.0341915jes.\n", - "[5] Valentin Sulzer, Scott G. Marquis, Robert Timms, Martin Robinson, and S. Jon Chapman. Python Battery Mathematical Modelling (PyBaMM). Journal of Open Research Software, 9(1):14, 2021. doi:10.5334/jors.309.\n", - "[6] Pauli Virtanen, Ralf Gommers, Travis E. Oliphant, Matt Haberland, Tyler Reddy, David Cournapeau, Evgeni Burovski, Pearu Peterson, Warren Weckesser, Jonathan Bright, and others. SciPy 1.0: fundamental algorithms for scientific computing in Python. Nature Methods, 17(3):261–272, 2020. doi:10.1038/s41592-019-0686-2.\n", - "\n" - ] - } - ], - "source": [ - "pybamm.print_citations()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.12" - }, - "toc": { - "base_numbering": 1, - "nav_menu": {}, - "number_sections": true, - "sideBar": true, - "skip_h1_title": false, - "title_cell": "Table of Contents", - "title_sidebar": "Contents", - "toc_cell": false, - "toc_position": {}, - "toc_section_display": true, - "toc_window_display": true - }, - "vscode": { - "interpreter": { - "hash": "612adcc456652826e82b485a1edaef831aa6d5abc680d008e93d513dd8724f14" - } - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/pybamm/input/parameters/lithium_ion/Ai2020.py b/pybamm/input/parameters/lithium_ion/Ai2020.py index 441c11983d..59e2db510a 100644 --- a/pybamm/input/parameters/lithium_ion/Ai2020.py +++ b/pybamm/input/parameters/lithium_ion/Ai2020.py @@ -30,7 +30,7 @@ def graphite_diffusivity_Dualfoil1998(sto, T): """ D_ref = 3.9 * 10 ** (-14) E_D_s = 5000 - T_ref = pybamm.Parameter("Reference temperature [K]") + T_ref = 298.15 arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / T_ref - 1 / T)) return D_ref * arrhenius @@ -64,7 +64,7 @@ def graphite_electrolyte_exchange_current_density_Dualfoil1998( """ m_ref = ( 1 * 10 ** (-11) * pybamm.constants.F - ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations + ) # (A/m2)(m3/mol)**1.5 - includes ref concentrations E_r = 5000 # activation energy for Temperature Dependent Reaction Constant [J/mol] arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) @@ -204,7 +204,7 @@ def graphite_cracking_rate_Ai2020(T_dim): where m_cr is another Paris' law constant """ k_cr = 3.9e-20 - T_ref = pybamm.Parameter("Reference temperature [K]") + T_ref = 298.15 Eac_cr = pybamm.Parameter( "Negative electrode activation energy for cracking rate [J.mol-1]" ) @@ -235,7 +235,7 @@ def lico2_diffusivity_Dualfoil1998(sto, T): """ D_ref = 5.387 * 10 ** (-15) E_D_s = 5000 - T_ref = pybamm.Parameter("Reference temperature [K]") + T_ref = 298.15 arrhenius = pybamm.exp(E_D_s / pybamm.constants.R * (1 / T_ref - 1 / T)) return D_ref * arrhenius @@ -266,7 +266,7 @@ def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_m Exchange-current density [A.m-2] """ m_ref = 1 * 10 ** (-11) * pybamm.constants.F # need to match the unit from m/s - # (A/m2)(mol/m3)**1.5 - includes ref concentrations + # (A/m2)(m3/mol)**1.5 - includes ref concentrations E_r = 5000 arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) @@ -383,7 +383,7 @@ def lico2_cracking_rate_Ai2020(T_dim): where m_cr is another Paris' law constant """ k_cr = 3.9e-20 - T_ref = pybamm.Parameter("Reference temperature [K]") + T_ref = 298.15 Eac_cr = pybamm.Parameter( "Positive electrode activation energy for cracking rate [J.mol-1]" ) @@ -414,7 +414,7 @@ def dlnf_dlnc_Ai2020(c_e, T, T_ref=298.3, t_plus=0.38): :class:`pybamm.Symbol` 1 + dlnf/dlnc """ - T_ref = pybamm.Parameter("Reference temperature [K]") + T_ref = 298.15 t_plus = pybamm.Parameter("Cation transference number") dlnf_dlnc = ( 0.601 diff --git a/pybamm/input/parameters/lithium_ion/Chen2020.py b/pybamm/input/parameters/lithium_ion/Chen2020.py index e259615602..5390931ca7 100644 --- a/pybamm/input/parameters/lithium_ion/Chen2020.py +++ b/pybamm/input/parameters/lithium_ion/Chen2020.py @@ -65,7 +65,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( :class:`pybamm.Symbol` Exchange-current density [A.m-2] """ - m_ref = 6.48e-7 # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = 6.48e-7 # (A/m2)(m3/mol)**1.5 - includes ref concentrations E_r = 35000 arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) @@ -136,7 +136,7 @@ def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_m :class:`pybamm.Symbol` Exchange-current density [A.m-2] """ - m_ref = 3.42e-6 # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = 3.42e-6 # (A/m2)(m3/mol)**1.5 - includes ref concentrations E_r = 17800 arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) diff --git a/pybamm/input/parameters/lithium_ion/Chen2020_composite.py b/pybamm/input/parameters/lithium_ion/Chen2020_composite.py index 5e4fca25bb..361069aa2e 100644 --- a/pybamm/input/parameters/lithium_ion/Chen2020_composite.py +++ b/pybamm/input/parameters/lithium_ion/Chen2020_composite.py @@ -32,7 +32,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( :class:`pybamm.Symbol` Exchange-current density [A.m-2] """ - m_ref = 6.48e-7 # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = 6.48e-7 # (A/m2)(m3/mol)**1.5 - includes ref concentrations E_r = 35000 arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) @@ -162,7 +162,7 @@ def silicon_LGM50_electrolyte_exchange_current_density_Chen2020( m_ref = ( 6.48e-7 * 28700 / 278000 - ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations + ) # (A/m2)(m3/mol)**1.5 - includes ref concentrations E_r = 35000 arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) @@ -233,7 +233,7 @@ def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_m :class:`pybamm.Symbol` Exchange-current density [A.m-2] """ - m_ref = 3.42e-6 # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = 3.42e-6 # (A/m2)(m3/mol)**1.5 - includes ref concentrations E_r = 17800 arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) diff --git a/pybamm/input/parameters/lithium_ion/Ecker2015.py b/pybamm/input/parameters/lithium_ion/Ecker2015.py index 14e54be33a..c3d560ba96 100644 --- a/pybamm/input/parameters/lithium_ion/Ecker2015.py +++ b/pybamm/input/parameters/lithium_ion/Ecker2015.py @@ -140,7 +140,7 @@ def graphite_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_m # multiply by Faraday's constant to get correct units m_ref = ( pybamm.constants.F * k_ref - ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations + ) # (A/m2)(m3/mol)**1.5 - includes ref concentrations E_r = 53400 arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp( @@ -285,7 +285,7 @@ def nco_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, c_s_max, T # multiply by Faraday's constant to get correct units m_ref = ( pybamm.constants.F * k_ref - ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations + ) # (A/m2)(m3/mol)**1.5 - includes ref concentrations E_r = 4.36e4 arrhenius = pybamm.exp(-E_r / (pybamm.constants.R * T)) * pybamm.exp( diff --git a/pybamm/input/parameters/lithium_ion/Marquis2019.py b/pybamm/input/parameters/lithium_ion/Marquis2019.py index 94467fa444..069d2e3501 100644 --- a/pybamm/input/parameters/lithium_ion/Marquis2019.py +++ b/pybamm/input/parameters/lithium_ion/Marquis2019.py @@ -85,7 +85,7 @@ def graphite_electrolyte_exchange_current_density_Dualfoil1998( :class:`pybamm.Symbol` Exchange-current density [A.m-2] """ - m_ref = 2 * 10 ** (-5) # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = 2 * 10 ** (-5) # (A/m2)(m3/mol)**1.5 - includes ref concentrations E_r = 37480 arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) @@ -216,7 +216,7 @@ def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_m :class:`pybamm.Symbol` Exchange-current density [A.m-2] """ - m_ref = 6 * 10 ** (-7) # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = 6 * 10 ** (-7) # (A/m2)(m3/mol)**1.5 - includes ref concentrations E_r = 39570 arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) diff --git a/pybamm/input/parameters/lithium_ion/Mohtat2020.py b/pybamm/input/parameters/lithium_ion/Mohtat2020.py index 8ca1ef33da..9befe3055e 100644 --- a/pybamm/input/parameters/lithium_ion/Mohtat2020.py +++ b/pybamm/input/parameters/lithium_ion/Mohtat2020.py @@ -81,7 +81,7 @@ def graphite_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_m Exchange-current density [A.m-2] """ m_ref = 1.061 * 10 ** (-6) # unit has been converted - # units are (A/m2)(mol/m3)**1.5 - includes ref concentrations + # units are (A/m2)(m3/mol)**1.5 - includes ref concentrations E_r = 37480 arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) @@ -203,7 +203,7 @@ def NMC_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, c_s_max, T :class:`pybamm.Symbol` Exchange-current density [A.m-2] """ - m_ref = 4.824 * 10 ** (-6) # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = 4.824 * 10 ** (-6) # (A/m2)(m3/mol)**1.5 - includes ref concentrations E_r = 39570 arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) @@ -416,7 +416,6 @@ def get_parameter_values(): # negative electrode "Negative electrode conductivity [S.m-1]": 100.0, "Maximum concentration in negative electrode [mol.m-3]": 28746.0, - "Negative electrode diffusion coefficient [m2.s-1]": 5e-15, "Negative electrode diffusivity [m2.s-1]": graphite_diffusivity_PeymanMPM, "Negative electrode OCP [V]": graphite_ocp_PeymanMPM, "Negative electrode porosity": 0.3, diff --git a/pybamm/input/parameters/lithium_ion/OKane2022.py b/pybamm/input/parameters/lithium_ion/OKane2022.py index 87a119f34a..64c664d0c1 100644 --- a/pybamm/input/parameters/lithium_ion/OKane2022.py +++ b/pybamm/input/parameters/lithium_ion/OKane2022.py @@ -157,7 +157,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( Exchange-current density [A.m-2] """ - m_ref = 6.48e-7 # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = 6.48e-7 # (A/m2)(m3/mol)**1.5 - includes ref concentrations E_r = 35000 arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) @@ -338,7 +338,7 @@ def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, c_s_m :class:`pybamm.Symbol` Exchange-current density [A.m-2] """ - m_ref = 3.42e-6 # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = 3.42e-6 # (A/m2)(m3/mol)**1.5 - includes ref concentrations E_r = 17800 arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) diff --git a/pybamm/input/parameters/lithium_ion/Prada2013.py b/pybamm/input/parameters/lithium_ion/Prada2013.py index d9af1247eb..ab14e2a66f 100644 --- a/pybamm/input/parameters/lithium_ion/Prada2013.py +++ b/pybamm/input/parameters/lithium_ion/Prada2013.py @@ -65,7 +65,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020( :class:`pybamm.Symbol` Exchange-current density [A.m-2] """ - m_ref = 6.48e-7 # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = 6.48e-7 # (A/m2)(m3/mol)**1.5 - includes ref concentrations E_r = 35000 arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) @@ -125,7 +125,7 @@ def LFP_electrolyte_exchange_current_density_kashkooli2017(c_e, c_s_surf, c_s_ma Exchange-current density [A.m-2] """ - m_ref = 6 * 10 ** (-7) # (A/m2)(mol/m3)**1.5 - includes ref concentrations + m_ref = 6 * 10 ** (-7) # (A/m2)(m3/mol)**1.5 - includes ref concentrations E_r = 39570 arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) diff --git a/pybamm/input/parameters/lithium_ion/Ramadass2004.py b/pybamm/input/parameters/lithium_ion/Ramadass2004.py index ccd178c955..b7f58a1fe0 100644 --- a/pybamm/input/parameters/lithium_ion/Ramadass2004.py +++ b/pybamm/input/parameters/lithium_ion/Ramadass2004.py @@ -84,7 +84,7 @@ def graphite_electrolyte_exchange_current_density_Ramadass2004( :class:`pybamm.Symbol` Exchange-current density [A.m-2] """ - m_ref = 4.854 * 10 ** (-6) # (A/m2)(mol/m3)**1.5 + m_ref = 4.854 * 10 ** (-6) # (A/m2)(m3/mol)**1.5 E_r = 37480 arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) @@ -222,7 +222,7 @@ def lico2_electrolyte_exchange_current_density_Ramadass2004(c_e, c_s_surf, c_s_m :class:`pybamm.Symbol` Exchange-current density [A.m-2] """ - m_ref = 2.252 * 10 ** (-6) # (A/m2)(mol/m3)**1.5 + m_ref = 2.252 * 10 ** (-6) # (A/m2)(m3/mol)**1.5 E_r = 39570 arrhenius = pybamm.exp(E_r / pybamm.constants.R * (1 / 298.15 - 1 / T)) diff --git a/pybamm/input/parameters/lithium_ion/Xu2019.py b/pybamm/input/parameters/lithium_ion/Xu2019.py index 9a1eb6c4b9..39c3039cf9 100644 --- a/pybamm/input/parameters/lithium_ion/Xu2019.py +++ b/pybamm/input/parameters/lithium_ion/Xu2019.py @@ -111,7 +111,7 @@ def nmc_electrolyte_exchange_current_density_Xu2019(c_e, c_s_surf, c_s_max, T): # assuming implicit correction of incorrect units from the paper m_ref = ( 5.76e-11 * pybamm.constants.F - ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations + ) # (A/m2)(m3/mol)**1.5 - includes ref concentrations return m_ref * c_e**0.5 * c_s_surf**0.5 * (c_s_max - c_s_surf) ** 0.5 diff --git a/pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/graphite_electrolyte_exchange_current_density_Dualfoil1998.py b/pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/graphite_electrolyte_exchange_current_density_Dualfoil1998.py index 9b6b120785..21585c4ccd 100644 --- a/pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/graphite_electrolyte_exchange_current_density_Dualfoil1998.py +++ b/pybamm/input/parameters/lithium_ion/testing_only/negative_electrodes/graphite_Ai2020/graphite_electrolyte_exchange_current_density_Dualfoil1998.py @@ -30,7 +30,7 @@ def graphite_electrolyte_exchange_current_density_Dualfoil1998( """ m_ref = ( 1 * 10 ** (-11) * constants.F - ) # (A/m2)(mol/m3)**1.5 - includes ref concentrations + ) # (A/m2)(m3/mol)**1.5 - includes ref concentrations E_r = 5000 # activation energy for Temperature Dependent Reaction Constant [J/mol] arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) diff --git a/pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/lico2_electrolyte_exchange_current_density_Dualfoil1998.py b/pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/lico2_electrolyte_exchange_current_density_Dualfoil1998.py index b43e7913ed..71a6ff4bf0 100644 --- a/pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/lico2_electrolyte_exchange_current_density_Dualfoil1998.py +++ b/pybamm/input/parameters/lithium_ion/testing_only/positive_electrodes/lico2_Ai2020/lico2_electrolyte_exchange_current_density_Dualfoil1998.py @@ -27,7 +27,7 @@ def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, c_s_m Exchange-current density [A.m-2] """ m_ref = 1 * 10 ** (-11) * constants.F # need to match the unit from m/s - # (A/m2)(mol/m3)**1.5 - includes ref concentrations + # (A/m2)(m3/mol)**1.5 - includes ref concentrations E_r = 5000 arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T))