From 56fcfece039d5c9dc123d76ad967f5b5e9e58f67 Mon Sep 17 00:00:00 2001 From: Eric Fell Date: Sun, 28 Jan 2024 10:23:28 -0500 Subject: [PATCH] update zerodmodel param names in ipynb --- .../examples/simulate_RFB_example.ipynb | 230 ++++++++++-------- 1 file changed, 122 insertions(+), 108 deletions(-) diff --git a/docs/source/examples/simulate_RFB_example.ipynb b/docs/source/examples/simulate_RFB_example.ipynb index 02a4cdb..668adea 100644 --- a/docs/source/examples/simulate_RFB_example.ipynb +++ b/docs/source/examples/simulate_RFB_example.ipynb @@ -56,7 +56,7 @@ "metadata": {}, "source": [ "Below, we define a cell with a 5 mL CLS, 10 mL NCLS, and 10 mM initial concentrations for all four species ($C_{ox,\\scriptscriptstyle CLS},~C_{red,\\scriptscriptstyle CLS},~C_{ox,\\scriptscriptstyle NCLS},~C_{red,\\scriptscriptstyle NCLS}$). The voltage difference between the formal reduction potential ($E^{o^{\\prime}}$) of the posolyte and negolyte species is 1.0 V, defined as $E_{cell}^{o^{\\prime}}=E_{\\scriptscriptstyle posolyte}^{o^{\\prime}}-E_{\\scriptscriptstyle negolyte}^{o^{\\prime}}$. \n", - "A cell ohmic resistance of 1.0 $\\Omega$, and electrochemical rate constants ($k_{o}$) of $10^{-3}$ cm/s for both posolyte and negolyte species, are also defined. The [`ZeroDModel`](https://ericfell-rfbzero.readthedocs.io/en/latest/flowcell.html#src.rfbzero.redox_flow_cell.ZeroDModel) class defaults to one-electron transfers for redox-active species, but this can be changed as shown in the [documentation](https://ericfell-rfbzero.readthedocs.io/en/latest/flowcell.html). Additionally, the simulation timestep `time_increment` defaults to 0.01 seconds." + "A cell ohmic resistance of 1.0 $\\Omega$, and electrochemical rate constants ($k_{o}$) of $10^{-3}$ cm/s for both posolyte and negolyte species, are also defined. The [`ZeroDModel`](https://ericfell-rfbzero.readthedocs.io/en/latest/flowcell.html#src.rfbzero.redox_flow_cell.ZeroDModel) class defaults to one-electron transfers for redox-active species, but this can be changed as shown in the [documentation](https://ericfell-rfbzero.readthedocs.io/en/latest/flowcell.html). Additionally, the simulation timestep `time_step` defaults to 0.01 seconds." ] }, { @@ -67,16 +67,16 @@ "outputs": [], "source": [ "cell = ZeroDModel(\n", - " cls_volume=0.005, # liters\n", - " ncls_volume=0.010, # liters\n", - " cls_start_c_ox=0.01, # molar\n", - " cls_start_c_red=0.01, # molar\n", - " ncls_start_c_ox=0.01, # molar\n", - " ncls_start_c_red=0.01, # molar\n", - " ocv_50_soc=1.0, # volts\n", - " resistance=1.0, # ohms\n", - " k_0_cls=1e-3, # cm/sec\n", - " k_0_ncls=1e-3, # cm/sec\n", + " volume_cls=0.005, # liters\n", + " volume_ncls=0.010, # liters\n", + " c_ox_cls=0.01, # molar\n", + " c_red_cls=0.01, # molar\n", + " c_ox_ncls=0.01, # molar\n", + " c_red_ncls=0.01, # molar\n", + " ocv_50_soc=1.0, # volts\n", + " resistance=1.0, # ohms\n", + " k_0_cls=1e-3, # cm/sec\n", + " k_0_ncls=1e-3, # cm/sec\n", ")" ] }, @@ -170,7 +170,7 @@ "id": "0bf0d44a", "metadata": {}, "source": [ - "The `results` object is obtained from our simple RFB cycling simulation and is an instance of the [`CyclingProtocolResults`](https://ericfell-rfbzero.readthedocs.io/en/latest/experiment.html#src.rfbzero.experiment.CyclingProtocolResults) class. This object has multiple temporal profiles of useful cell information such as voltage, current, capacities, concentrations, overpotentials, etc. Let's plot a few outputs describing the cell we just ran:" + "The `results` object is obtained from our simple RFB cycling simulation and is an instance of the [`CyclingResults`](https://ericfell-rfbzero.readthedocs.io/en/latest/experiment.html#src.rfbzero.experiment.CyclingResults) class. This object has multiple temporal profiles of useful cell information such as voltage, current, capacities, concentrations, overpotentials, etc. Let's plot a few outputs describing the cell we just ran:" ] }, { @@ -246,16 +246,16 @@ "source": [ "# 1. setup flow cell\n", "cell = ZeroDModel(\n", - " cls_volume=0.005, # liters\n", - " ncls_volume=0.010, # liters\n", - " cls_start_c_ox=0.01, # molar\n", - " cls_start_c_red=0.01, # molar\n", - " ncls_start_c_ox=0.01, # molar\n", - " ncls_start_c_red=0.01, # molar\n", - " ocv_50_soc=1.0, # volts\n", - " resistance=1.0, # ohms\n", - " k_0_cls=1e-3, # cm/sec\n", - " k_0_ncls=1e-3, # cm/sec\n", + " volume_cls=0.005, # liters\n", + " volume_ncls=0.010, # liters\n", + " c_ox_cls=0.01, # molar\n", + " c_red_cls=0.01, # molar\n", + " c_ox_ncls=0.01, # molar\n", + " c_red_ncls=0.01, # molar\n", + " ocv_50_soc=1.0, # volts\n", + " resistance=1.0, # ohms\n", + " k_0_cls=1e-3, # cm/sec\n", + " k_0_ncls=1e-3, # cm/sec\n", ")\n", "\n", "# 2. declare cycling protocol\n", @@ -323,16 +323,16 @@ "source": [ "# 1. setup flow cell\n", "cell = ZeroDModel(\n", - " cls_volume=0.005, # liters\n", - " ncls_volume=0.010, # liters\n", - " cls_start_c_ox=0.01, # molar\n", - " cls_start_c_red=0.01, # molar\n", - " ncls_start_c_ox=0.01, # molar\n", - " ncls_start_c_red=0.01, # molar\n", - " ocv_50_soc=1.0, # volts\n", - " resistance=1.5, # ohms\n", - " k_0_cls=1e-3, # cm/sec\n", - " k_0_ncls=1e-3, # cm/sec\n", + " volume_cls=0.005, # liters\n", + " volume_ncls=0.010, # liters\n", + " c_ox_cls=0.01, # molar\n", + " c_red_cls=0.01, # molar\n", + " c_ox_ncls=0.01, # molar\n", + " c_red_ncls=0.01, # molar\n", + " ocv_50_soc=1.0, # volts\n", + " resistance=1.5, # ohms\n", + " k_0_cls=1e-3, # cm/sec\n", + " k_0_ncls=1e-3, # cm/sec\n", ")\n", "\n", "# 2. declare cycling protocol\n", @@ -522,30 +522,46 @@ "id": "f47551d9", "metadata": {}, "source": [ - "## a. Chemical degradation\n", - "The [`ChemicalDegradation`](https://ericfell-rfbzero.readthedocs.io/en/latest/degradation.html#src.rfbzero.degradation.ChemicalDegradation) class provides an $\\mathrm{n^{th}}$ order chemical degradation of the redox-active species ($C_x$) of interest, with rate constant $k_n$:\n", + "## a. Chemical degradation, oxidized species\n", + "The [`ChemicalDegradationOxidized`](https://ericfell-rfbzero.readthedocs.io/en/latest/degradation.html#src.rfbzero.degradation.ChemicalDegradationOxidized) class provides an $\\mathrm{n^{th}}$ order chemical degradation of the oxidized species ($C_{ox}$) of interest, with rate constant $k_n$:\n", "\n", "\n", "
\n", "\\begin{equation}\n", - "\\frac{d[A]}{dt} = -k_n [A]^{n}, \\mathrm{~~ where~A=reduced~or~oxidized}\n", + "\\frac{d[C_{ox}]}{dt} = -k_n [C_{ox}]^{n}\n", "\\label{eq:chemdeg} \\tag{9}\n", "\\end{equation}" ] }, + { + "cell_type": "markdown", + "id": "b7b3cb2e", + "metadata": {}, + "source": [ + "## b. Chemical degradation, reduced species\n", + "The [`ChemicalDegradationReduced`](https://ericfell-rfbzero.readthedocs.io/en/latest/degradation.html#src.rfbzero.degradation.ChemicalDegradationReduced) class provides an $\\mathrm{n^{th}}$ order chemical degradation of the reduced species ($C_{red}$) of interest, with rate constant $k_n$:\n", + "\n", + "\n", + "
\n", + "\\begin{equation}\n", + "\\frac{d[C_{red}]}{dt} = -k_n [C_{red}]^{n}\n", + "\\label{eq:chemdeg} \\tag{10}\n", + "\\end{equation}" + ] + }, { "cell_type": "markdown", "id": "29382322", "metadata": {}, "source": [ - "## b. Auto-oxidation (self-discharge)\n", + "## c. Auto-oxidation (self-discharge)\n", "The [`AutoOxidation`](https://ericfell-rfbzero.readthedocs.io/en/latest/degradation.html#src.rfbzero.degradation.AutoOxidation) class provides a $\\mathrm{1^{st}}$ order chemical oxidation of $C_{red}\\rightarrow C_{ox}$ (no active material is destroyed), with rate constant $k_1$:\n", "\n", "\n", "
\n", "\\begin{equation}\n", "\\frac{d[red]}{dt} = -\\frac{d[ox]}{dt} = -k_1 [red]\n", - "\\label{eq:auto-ox} \\tag{10}\n", + "\\label{eq:auto-ox} \\tag{11}\n", "\\end{equation}\n", "
" ] @@ -555,14 +571,14 @@ "id": "fd76829e", "metadata": {}, "source": [ - "## c. Auto-reduction (self-discharge)\n", + "## d. Auto-reduction (self-discharge)\n", "The [`AutoReduction`](https://ericfell-rfbzero.readthedocs.io/en/latest/degradation.html#src.rfbzero.degradation.AutoReduction) class provides a $\\mathrm{1^{st}}$ order chemical reduction of $C_{ox}\\rightarrow C_{red}$ (no active material is destroyed), with rate constant $k_1$:\n", "\n", "\n", "
\n", "\\begin{equation}\n", "\\frac{d[ox]}{dt} = -\\frac{d[red]}{dt} = -k_1 [ox]\n", - "\\label{eq:auto-red} \\tag{11}\n", + "\\label{eq:auto-red} \\tag{12}\n", "\\end{equation}\n", "
" ] @@ -572,20 +588,20 @@ "id": "38227bb3", "metadata": {}, "source": [ - "## d. Dimerization\n", + "## e. Dimerization\n", "The [`Dimerization`](https://ericfell-rfbzero.readthedocs.io/en/latest/degradation.html#src.rfbzero.degradation.Dimerization) class provides a reversible chemical dimerization of $C_{ox} + C_{red} \\leftrightarrow C_{dimer}$, dictated by the dimerization equilibrium constant ($K_{dimer}$):\n", "\n", "
\n", "\\begin{equation}\n", "K_{dimer} = \\frac{k_{forward}}{k_{backward}}\n", - "\\label{eq:k_dimer} \\tag{12}\n", + "\\label{eq:k_dimer} \\tag{13}\n", "\\end{equation}\n", "
\n", "\n", "
\n", "\\begin{equation}\n", "\\frac{d[dimer]}{dt} = -\\frac{d[ox]}{dt} = -\\frac{d[red]}{dt} = k_f [ox] [red] - k_b [dimer]\n", - "\\label{eq:dimer} \\tag{13}\n", + "\\label{eq:dimer} \\tag{14}\n", "\\end{equation}\n", "
" ] @@ -595,7 +611,7 @@ "id": "fd5b3ead", "metadata": {}, "source": [ - "## e. Multiple mechanisms\n", + "## f. Multiple mechanisms\n", "The [`MultiDegradationMechanism`](https://ericfell-rfbzero.readthedocs.io/en/latest/degradation.html#src.rfbzero.degradation.MultiDegradationMechanism) class provides the option to input multiple degradation mechanisms, and allows for different and/or multiple mechanisms to be applied to reduced and/or oxidized species. Degradation mechanisms are applied in the same order they are inputted, which only matters computationally at large time steps where accuracy is decreased." ] }, @@ -614,7 +630,7 @@ "source": [ "## Full cell, CCCV, chemical degradation of reduced species in CLS and NCLS\n", "\n", - "Half-cycle capacities can be accessed via the `charge_cycle_capacity` and `discharge_cycle_capacity` data from the simulation results container obtained from the [`CyclingProtocolResults`](https://ericfell-rfbzero.readthedocs.io/en/latest/experiment.html#src.rfbzero.experiment.CyclingProtocolResults) class. Likewise, the cycle time of those cycles can be accessed via `charge_cycle_time` and `discharge_cycle_time`." + "Half-cycle capacities can be accessed via the `charge_cycle_capacity` and `discharge_cycle_capacity` data from the simulation results container obtained from the [`CyclingResults`](https://ericfell-rfbzero.readthedocs.io/en/latest/experiment.html#src.rfbzero.experiment.CyclingResults) class. Likewise, the cycle time of those cycles can be accessed via `charge_cycle_time` and `discharge_cycle_time`." ] }, { @@ -643,20 +659,20 @@ } ], "source": [ - "from rfbzero.degradation import ChemicalDegradation\n", + "from rfbzero.degradation import ChemicalDegradationReduced\n", "\n", "# 1. setup flow cell\n", "cell = ZeroDModel(\n", - " cls_volume=0.005, # liters\n", - " ncls_volume=0.010, # liters\n", - " cls_start_c_ox=0.01, # molar\n", - " cls_start_c_red=0.01, # molar\n", - " ncls_start_c_ox=0.01, # molar\n", - " ncls_start_c_red=0.01, # molar\n", - " ocv_50_soc=1.0, # volts\n", - " resistance=1.0, # ohms\n", - " k_0_cls=1e-3, # cm/sec\n", - " k_0_ncls=1e-3, # cm/sec\n", + " volume_cls=0.005, # liters\n", + " volume_ncls=0.010, # liters\n", + " c_ox_cls=0.01, # molar\n", + " c_red_cls=0.01, # molar\n", + " c_ox_ncls=0.01, # molar\n", + " c_red_ncls=0.01, # molar\n", + " ocv_50_soc=1.0, # volts\n", + " resistance=1.0, # ohms\n", + " k_0_cls=1e-3, # cm/sec\n", + " k_0_ncls=1e-3, # cm/sec\n", ")\n", "\n", "# 2. declare cycling protocol\n", @@ -668,10 +684,9 @@ ")\n", "\n", "# 3. declare degradation mechanism\n", - "chem_deg = ChemicalDegradation(\n", + "chem_deg = ChemicalDegradationReduced(\n", " rate_order=1, # declares a first order mechanism\n", " rate_constant=1e-3, # first order rate constant, 1/sec\n", - " species='red', # species undergoing degradation\n", ")\n", "\n", "# 4. put it all together\n", @@ -734,20 +749,20 @@ } ], "source": [ - "from rfbzero.degradation import AutoReduction\n", + "from rfbzero.degradation import AutoReduction, ChemicalDegradationOxidized\n", "\n", "# 1. setup flow cell\n", "cell = ZeroDModel(\n", - " cls_volume=0.005, # liters\n", - " ncls_volume=0.010, # liters\n", - " cls_start_c_ox=0.01, # molar\n", - " cls_start_c_red=0.01, # molar\n", - " ncls_start_c_ox=0.01, # molar\n", - " ncls_start_c_red=0.01, # molar\n", - " ocv_50_soc=1.0, # volts\n", - " resistance=1.0, # ohms\n", - " k_0_cls=1e-3, # cm/sec\n", - " k_0_ncls=1e-3, # cm/sec\n", + " volume_cls=0.005, # liters\n", + " volume_ncls=0.010, # liters\n", + " c_ox_cls=0.01, # molar\n", + " c_red_cls=0.01, # molar\n", + " c_ox_ncls=0.01, # molar\n", + " c_red_ncls=0.01, # molar\n", + " ocv_50_soc=1.0, # volts\n", + " resistance=1.0, # ohms\n", + " k_0_cls=1e-3, # cm/sec\n", + " k_0_ncls=1e-3, # cm/sec\n", ")\n", "\n", "# 2. declare cycling protocol\n", @@ -761,10 +776,9 @@ "auto_red_cls = AutoReduction(rate_constant=2e-4)\n", "\n", "# 4. declare NCLS degradation mechanism\n", - "chem_deg_ncls = ChemicalDegradation(\n", + "chem_deg_ncls = ChemicalDegradationOxidized(\n", " rate_order=2, # declares a second order mechanism\n", " rate_constant=2e-3, # second order rate constant, 1/(M*sec)\n", - " species='ox', # species undergoing degradation\n", ")\n", "\n", "# 5. put it all together\n", @@ -820,7 +834,7 @@ "
\n", "\\begin{equation}\n", "\\frac{d[ox]_\\theta}{dt} = \\pm \\frac{\\Lambda P_{ox} (C_{ox,\\scriptscriptstyle CLS} - C_{ox,\\scriptscriptstyle NCLS})}{v_{\\theta}},\n", - "\\label{eq:perm_ox} \\tag{13}\n", + "\\label{eq:perm_ox} \\tag{15}\n", "\\end{equation}\n", "
\n", "
\n", @@ -828,7 +842,7 @@ "
\n", "\\begin{equation}\n", "\\frac{d[red]_\\theta}{dt} = \\pm \\frac{\\Lambda P_{red} (C_{red,\\scriptscriptstyle CLS} - C_{red,\\scriptscriptstyle NCLS})}{v_{\\theta}},\n", - "\\label{eq:perm_red} \\tag{14}\n", + "\\label{eq:perm_red} \\tag{16}\n", "\\end{equation}\n", "
\n", "
\n", @@ -849,7 +863,7 @@ "We define a CCCV protocol with the [`ConstantCurrentConstantVoltage`](https://ericfell-rfbzero.readthedocs.io/en/latest/experiment.html#src.rfbzero.experiment.ConstantCurrentConstantVoltage) class for a **symmetric cell**, to charge up to 0.2 V and discharge down to -0.2 V, at $\\pm$ 100 mA. We set the current cutoffs to be $\\pm$ 5 mA.\\\n", "We now include a crossover mechanism via the [`Crossover`](https://ericfell-rfbzero.readthedocs.io/en/latest/crossover.html#src.rfbzero.crossover.Crossover) class, with a membrane thickness of $\\mathrm{50~\\mu m}$, and permeabilities for oxidized and reduced species: $P_{ox}=1\\times10^{-7}~cm^{2}/s~,~P_{red}=5\\times10^{-7}~cm^{2}/s$.\n", "
\n", - "The amount of species, in mols, that is crossing the membrane at each timestep (right hand side of **(13)** or **(14)**, multiplied by timestep) is given by the `delta_ox` and `delta_red` data from the simulation results container. A positive `delta_..` means that species are crossing from CLS to NCLS." + "The amount of species, in mols, that is crossing the membrane at each timestep (right hand side of **(15)** or **(16)**, multiplied by timestep) is given by the `delta_ox` and `delta_red` data from the simulation results container. A positive `delta_..` means that species are crossing from CLS to NCLS." ] }, { @@ -882,16 +896,16 @@ "\n", "# 1. setup flow cell\n", "cell = ZeroDModel(\n", - " cls_volume=0.005, # liters\n", - " ncls_volume=0.010, # liters\n", - " cls_start_c_ox=0.01, # molar\n", - " cls_start_c_red=0.01, # molar\n", - " ncls_start_c_ox=0.01, # molar\n", - " ncls_start_c_red=0.01, # molar\n", - " ocv_50_soc=0.0, # volts\n", - " resistance=1.0, # ohms\n", - " k_0_cls=1e-3, # cm/sec\n", - " k_0_ncls=1e-3, # cm/sec\n", + " volume_cls=0.005, # liters\n", + " volume_ncls=0.010, # liters\n", + " c_ox_cls=0.01, # molar\n", + " c_red_cls=0.01, # molar\n", + " c_ox_ncls=0.01, # molar\n", + " c_red_ncls=0.01, # molar\n", + " ocv_50_soc=0.0, # volts\n", + " resistance=1.0, # ohms\n", + " k_0_cls=1e-3, # cm/sec\n", + " k_0_ncls=1e-3, # cm/sec\n", ")\n", "\n", "# 2. declare cycling protocol\n", @@ -903,7 +917,7 @@ ")\n", "\n", "# 3. declare degradation mechanism\n", - "chem_deg = ChemicalDegradation(rate_order=1, rate_constant=1e-4, species='red')\n", + "chem_deg = ChemicalDegradationReduced(rate_order=1, rate_constant=1e-4)\n", "\n", "# 4. declare crossover mechanism\n", "cross = Crossover(\n", @@ -985,16 +999,16 @@ "source": [ "# 1. setup flow cell\n", "cell = ZeroDModel(\n", - " cls_volume=0.005, # liters\n", - " ncls_volume=0.010, # liters\n", - " cls_start_c_ox=0.01, # molar\n", - " cls_start_c_red=0.01, # molar\n", - " ncls_start_c_ox=0.01, # molar\n", - " ncls_start_c_red=0.01, # molar\n", - " ocv_50_soc=0.0, # volts\n", - " resistance=1.5, # ohms\n", - " k_0_cls=1e-3, # cm/sec\n", - " k_0_ncls=1e-3, # cm/sec\n", + " volume_cls=0.005, # liters\n", + " volume_ncls=0.010, # liters\n", + " c_ox_cls=0.01, # molar\n", + " c_red_cls=0.01, # molar\n", + " c_ox_ncls=0.01, # molar\n", + " c_red_ncls=0.01, # molar\n", + " ocv_50_soc=0.0, # volts\n", + " resistance=1.5, # ohms\n", + " k_0_cls=1e-3, # cm/sec\n", + " k_0_ncls=1e-3, # cm/sec\n", ")\n", "\n", "# 2. declare cycling protocol\n", @@ -1040,9 +1054,9 @@ " - Charge @100 mA up to 1.2 V, with 5 mA current cutoff during voltage hold.\n", " - Discharge @-50 mA down to 0.8 V, with -10 mA current cutoff during voltage hold.\n", "2. CLS has a [`MultiDegradationMechanism`](https://ericfell-rfbzero.readthedocs.io/en/latest/degradation.html#src.rfbzero.degradation.MultiDegradationMechanism) consisting of two mechanisms:\n", - " - A $\\mathrm{1^{st}}$ order [`ChemicalDegradation`](https://ericfell-rfbzero.readthedocs.io/en/latest/degradation.html#src.rfbzero.degradation.ChemicalDegradation) mechanism of its reduced species.\n", + " - A $\\mathrm{1^{st}}$ order [`ChemicalDegradationReduced`](https://ericfell-rfbzero.readthedocs.io/en/latest/degradation.html#src.rfbzero.degradation.ChemicalDegradationReduced) mechanism.\n", " - An [`AutoReduction`](https://ericfell-rfbzero.readthedocs.io/en/latest/degradation.html#src.rfbzero.degradation.AutoReduction) mechanism (chemical reduction of oxidized species).\n", - "3. NCLS has a $\\mathrm{2^{nd}}$ order [`ChemicalDegradation`](https://ericfell-rfbzero.readthedocs.io/en/latest/degradation.html#src.rfbzero.degradation.ChemicalDegradation) mechanism for its oxidized species.\n", + "3. NCLS has a $\\mathrm{2^{nd}}$ order [`ChemicalDegradationOxidized`](https://ericfell-rfbzero.readthedocs.io/en/latest/degradation.html#src.rfbzero.degradation.ChemicalDegradationOxidized) mechanism.\n", "4. Asymmetric charge/discharge currents and current cutoffs." ] }, @@ -1076,16 +1090,16 @@ "\n", "# 1. setup flow cell\n", "cell = ZeroDModel(\n", - " cls_volume=0.005, # liters\n", - " ncls_volume=0.010, # liters\n", - " cls_start_c_ox=0.01, # molar\n", - " cls_start_c_red=0.01, # molar\n", - " ncls_start_c_ox=0.01, # molar\n", - " ncls_start_c_red=0.01, # molar\n", - " ocv_50_soc=1.0, # volts\n", - " resistance=1.5, # ohms\n", - " k_0_cls=1e-3, # cm/sec\n", - " k_0_ncls=1e-3, # cm/sec\n", + " volume_cls=0.005, # liters\n", + " volume_ncls=0.010, # liters\n", + " c_ox_cls=0.01, # molar\n", + " c_red_cls=0.01, # molar\n", + " c_ox_ncls=0.01, # molar\n", + " c_red_ncls=0.01, # molar\n", + " ocv_50_soc=1.0, # volts\n", + " resistance=1.5, # ohms\n", + " k_0_cls=1e-3, # cm/sec\n", + " k_0_ncls=1e-3, # cm/sec\n", ")\n", "\n", "# 2. declare cycling protocol\n", @@ -1099,7 +1113,7 @@ ")\n", "\n", "# 3a. declare CLS degradation mechanism\n", - "chem_deg_cls = ChemicalDegradation(rate_order=1, rate_constant=4e-4, species='red')\n", + "chem_deg_cls = ChemicalDegradationReduced(rate_order=1, rate_constant=4e-4)\n", "\n", "# 3b. declare another CLS degradation mechanism\n", "auto_red_cls = AutoReduction(rate_constant=2e-4)\n", @@ -1108,7 +1122,7 @@ "cls_deg = MultiDegradationMechanism([chem_deg_cls, auto_red_cls])\n", "\n", "# 4. declare NCLS degradation mechanism\n", - "chem_deg_ncls = ChemicalDegradation(rate_order=2, rate_constant=3e-4, species='ox')\n", + "chem_deg_ncls = ChemicalDegradationOxidized(rate_order=2, rate_constant=3e-4)\n", "\n", "# 5. put it all together\n", "results = cccv_protocol.run(\n",