Priors

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

Schemas for priors.

class ionworks_schema.priors.Prior(name=None, distribution=None, regularizer_weight=None, *, type: Literal['Prior'] = 'Prior')

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

type: Literal['Prior']
name: str | list[str]
distribution: Annotated[Dirichlet | LogNormal | MultivariateLogNormal | MultivariateNormal | Normal | PointMass | Uniform, FieldInfo(annotation=NoneType, required=True, discriminator='distribution'), WrapValidator(func=_resolve_distribution, json_schema_input_type=PydanticUndefined)]
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 initialize 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.