FaradayInstitution / BPX

BPX schema in pydantic and JSON schema format, and parsers
MIT License
23 stars 12 forks source link

Revise hierarchy of "Electrode" parameters, include parameters for inert composition #55

Open ejfdickinson opened 3 weeks ago

ejfdickinson commented 3 weeks ago

Simon Clark (SINTEF) wrote:

Generally, I am thinking if we can structure this in a way that will support higher dimensions (e.g. P3D, P4D) in the future? That is affected mostly by the electrode parameter structure. As it currently is implemented, the electrode level contains information about the coating (e.g. thickness, porosity, transport efficiency, etc.) and the active material (e.g. stoichiometry, OCP, etc.) while omitting information about the current collectors. While the current collectors are not important for P2D models, they can be very important in P4D models. Also, enabling the possibility to set the composition of the coating (e.g. X wt% active material, Y wt% carbon black) would be good – even if it is not directly supported by PyBaMM at the moment. That would look something like this (just as a pseudo-code example):

{ 
    "Negative electrode": { 
        "Coating": { 
            "Thickness [m]": 4.44e-05, 
            "Porosity": 0.20666, 
            "Transport efficiency": 0.09395, 
            "Active material": { 
                "name": "Graphite", 
                "Mass fraction": 0.92, 
                "Diffusivity [m2.s-1]": 9.6e-15, 
                "OCP [V]": "5.29210878e+01 * exp(-1.72699386e+02 * x) - 1.17963399e+03 + 1.20956356e+03 * tanh(6.72033948e+01 * (x + 2.44746396e-02)) + 4.52430314e-02 * tanh(-1.47542326e+01 * (x - 1.62746053e-01)) + 2.01855800e+01 * tanh(-2.46666302e+01 * (x - 1.12986136e+00)) + 2.01708039e-02 * tanh(-1.19900231e+01 * (x - 5.49773440e-01)) + 4.99616805e+01 * tanh(-6.11370883e+01 * (x + 4.69382558e-03))", 
                "Entropic change coefficient [V.K-1]": "(-0.1112 * x + 0.02914 + 0.3561 * exp(-((x - 0.08309) ** 2) / 0.004616)) / 1000", 
                "Conductivity [S.m-1]": 7.46, 
                "Surface area per unit volume [m-1]": 473004, 
                "Reaction rate constant [mol.m-2.s-1]": 6.872E-06, 
                "Minimum stoichiometry": 0.0016261 
            }, 
            "Conductive additive": { 
                "name": "Carbon black", 
                "Mass Fraction": 0.04 
            }, 
            "Binder": { 
                "name": "CMC", 
                "Mass fraction": 0.04 
            } 
        }, 
        "Current collector": { 
            "name": "Copper foil", 
            "Thickness [µm]": 10 
        } 
    } 
} 
ejfdickinson commented 3 weeks ago

Better expression of electrode composition is important (#41), but I don't think that BPX is really the place for capturing general informational content about a cell, independent from a model. Parameters should be introduced to BPX only when they appear in a supported mathematical model.

valentinsulzer commented 3 weeks ago

+1 for separating material-level information from electrode-level information, especially as this is already what is done by BPX for blended electrodes. Specifically, I wish we had defined PyBaMM to use "active fraction of solid" (between 0 and 1) instead of "active material volume fraction" (between 0 and 1-porosity)

ejfdickinson commented 3 weeks ago

I think mass fraction will always be preferred, because (unlike volume fraction) it's pressure/temperature-independent.