Priors

Prior schemas used as regularizers in fitting objectives. Mirrors ionworkspipeline.priors.

Schemas for priors (match ionworkspipeline: iwp.priors.Prior).

class ionworks_schema.priors.Prior(name, distribution, regularizer_weight=None)

Bases: Regularizer

Regularization prior on a parameter.

Parameters

namestr or list of str

Parameter name(s) the prior applies to.

distributionionworks_schema.stats.Distribution

Probability distribution describing prior beliefs about the parameter(s).

regularizer_weightfloat, optional

Weight applied to the prior’s contribution to the cost. Default is 1.0.

Examples

>>> prior = iws.priors.Prior("Q_pe", iws.stats.Normal(mean=3.0, std=0.2))
>>> fit = iws.DataFit(
...     objectives={"ocp": iws.objectives.OCPHalfCell(
...         electrode="positive", data_input="path/to/ocp.csv",
...     )},
...     priors={"Q_pe": prior},
... )

Extends: ionworks_schema.objective_functions.regularizers.Regularizer

name: str | list[str]
distribution: Annotated[dict[str, Any] | Distribution | Any, FieldInfo(annotation=NoneType, required=True, metadata=[_PydanticGeneralMetadata(union_mode='left_to_right')])]
model_config = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'populate_by_name': True, 'validate_assignment': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(context: Any, /) None

This function is meant to behave like a BaseModel method to initialise private attributes.

It takes context as an argument since that’s what pydantic-core passes when calling it.

Args:

self: The BaseModel instance. context: The context.