Discrepancies in OCV-SOC Curves: Comparing Full-Cell Discharge Method vs. Electrode OCP Reconstruction

I am calculating OCV-SOV curve for full cell from two different methods

  1. Using slow discharge expriment
  2. Using OCP curves of each electrodes
    Both are very different as shown in below image.

What am I missing here?

Blue one in above image is calculated from simulation on full cell (with OKane2022)

    experiment = pybamm.Experiment(
        [
            (
            "Rest for 15 minutes",
            "Discharge at 0.005C until 2.5V",
            "Rest for 15 minutes",
            ),
        ],
        period="60 seconds",
    )

Plotted Bulk open-circuit voltage [V]
Red one is obtained by reconstructing OCV from half cell OCP curves. Example snippet

    params = pybamm.ParameterValues("OKane2022")
    negative_ocp = params["Negative electrode OCP [V]"]
    positive_ocp = params["Positive electrode OCP [V]"]
    x0, x100, y100, y0 = pybamm.lithium_ion.get_min_max_stoichiometries(parameter_values=params)
    
    # Generate the data
    soc_values = [(x - x0)/(x100 - x0) for x in np.linspace(x0, x100, 100)] # SoC values from 0 to 1
    ratio = (y0 - y100) / (x100 - x0)
    y = lambda x: y0 - (ratio * (x - x0))
    # Calculate OCV values
    # OCV = positive_ocp(y(x)) - negative_ocp(x)
    ocv_values = [
        positive_ocp(y(x)) - negative_ocp(x).evaluate()[0][0] 
        for x in soc_values
        ]

@DrSOKane

Hi Pritam, the best way of diagnosing what’s wrong is to print x0, x100, y100 and y0, then compare the values with those in the O’Kane 2022 paper.