Skip to main content
A direct entry populates parameter values without doing any calculation or fitting. There are two shapes:
  • iws.direct_entries.DirectEntry — a flat dict of values you supply yourself.
  • iws.direct_entries.* function schemas (e.g. landesfeind_electrolyte) — pre-built parameterisations from the literature, exposed under snake_case names.
For the physics behind the electrolyte parameterisations and when to pick each one, see the Electrolyte direct entries Guide and Electrolyte transport.

Custom DirectEntry

parameters accepts floats, arrays, and pybamm-serialisable symbols.

Callable parameters via pybamm.ParameterValues

For parameters that are callables — for example, concentration- or temperature-dependent interpolants — wrap them in a pybamm.ParameterValues and pass that. Its serialisation converts each callable into the symbolic form the server reconstructs on the other side. A raw dict containing callables is not auto-serialised; you must wrap it explicitly.
The interpolant lambda’s signature must be exactly (c_e, T) (or the relevant pybamm input variables) — capture any extra inputs (lookup arrays, names) via closure rather than default kwargs, since defaults are inferred as function inputs during serialisation and break reconstruction.

Parameters from a completed pipeline

Pass pipeline_id instead of parameters to take the results of a completed pipeline. Add keep to take only some of them, e.g. a half-cell fit’s kinetics without its coin-cell geometry:
Without keep, every parameter the pipeline produced is taken. A name in keep that the pipeline did not produce is an error, and so is an empty keep.

Parameters from a cell specification

Pass cell_spec_id and a mapping to read design values from a cell specification. mapping names each parameter and the JSON path of its value in the specification, which is the same string as the value’s column header in the measurements table:
  • Units. Each value is converted to the unit in its parameter’s name, so a thickness stored as 72.225 um becomes 7.2225e-05 and a porosity of 40 percent becomes 0.4.
  • Explicit only. Nothing is read without a mapping entry. A missing path, a value that is not a quantity, or a unit that does not convert is an error naming the parameter and the path.
  • Read once. Values are read when the pipeline is submitted, so later edits to the specification do not change a submitted pipeline.
  • Provenance. The resolved entry records where each parameter came from, e.g. {"path": "anode.properties.thickness", "value": 72.225, "unit": "um"}, and the pipeline page shows it under the entry’s source.

Electrolyte direct entries

system must be one of "EC:DMC (1:1)", "EC:EMC (3:7)", or "EMC:FEC (19:1)".

Building electrolyte transport from a material dataset

If you have measured electrolyte transport properties (conductivity, diffusivity, transference number, thermodynamic factor) versus concentration stored as a material property dataset, client.electrolyte.transport_from_dataset() turns the dataset into a pybamm.ParameterValues of concentration-dependent functions that you can drop straight into a DirectEntry. Each property is represented in one of two ways, chosen per-parameter:
  • "interpolant" (default) — a tabulated pybamm.Interpolant of the measured points with linear extrapolation.
  • "landesfeind" — the isothermal Landesfeind & Gasteiger (2019) functional form for that property, fitted to the measured points. Unlike a tabulated interpolant, the fitted conductivity and diffusivity forms stay positive and finite below the lowest measured concentration, which keeps high-rate DFN solves stable when the electrolyte depletes near an electrode.

Arguments

The "landesfeind" form is available for Electrolyte conductivity [S.m-1], Electrolyte diffusivity [m2.s-1], Cation transference number, and Thermodynamic factor. The dataset is treated as isothermal — each fitted form depends only on concentration.

Piecewise interpolant direct entries

For SOC- or temperature-dependent parameters, use iws.direct_entries.PiecewiseInterpolation1D or PiecewiseInterpolation2D. See Calculations → Piecewise.

Fitting coefficients from a direct entry

The transport-property coefficients inside landesfeind_electrolyte are exposed as named parameters precisely so they can be overridden as fit unknowns. Put the entry into a pipeline and reference the same parameter names in a downstream DataFit — the published values act as the base and the optimizer searches over the overridden ones.

Electrolyte direct entries (theory)

Physics behind the four transport properties.

Pipelines overview

How direct entries fit into the wider pipeline.