pybop.simulators.failed_solution#

Classes#

FailedSolution

Container for a failed PyBaMM solution that returns [np.inf] for all processed variables.

FailedVariable

Container for a failed PyBaMM variable that returns np.inf.

Module Contents#

class pybop.simulators.failed_solution.FailedSolution(variable_names: list[str], parameter_names: list[str])[source]#

Container for a failed PyBaMM solution that returns [np.inf] for all processed variables.

This class mimics the interface of a successful PyBaMM solution but returns infinity values to indicate failure while maintaining API compatibility.

Parameters:
  • variable_names – List of variable names in the solution

  • parameter_names – List of parameter names for sensitivity analysis

Example

>>> solution = FailedSolution(["Voltage [V]"], ["Negative particle radius [m]"])
>>> voltage = solution["Voltage [V]"]
>>> print(voltage.data)  # np.ndarray([inf])
__getattr__(name)[source]#
__getitem__(key)[source]#
_initialise_variables() None[source]#

Initialise all variables with failed state.

_validate_inputs(variable_names: list[str], parameter_names: list[str] | None) None[source]#

Validate constructor inputs.

copy()[source]#
items() list[tuple[str, FailedVariable]][source]#

Get all variable name-value pairs.

keys() list[str][source]#

Get all variable names.

plot(*args, **kwargs)[source]#
save(*args, **kwargs)[source]#
values() list[FailedVariable][source]#

Get all variables.

_parameter_names#
_t_eval: numpy.ndarray#
_variable_names#
_variables: dict[str, FailedVariable]#
cycles: int | None = None#
integration_time: float = 0.0#
property parameter_names: list[str]#

Get list of parameter names (read-only).

solve_time: float = 0.0#
property t_eval: numpy.ndarray#

Time evaluation points (returns [inf] for failed solutions).

termination: str = 'failure'#
property variable_names: list[str]#

Get list of variable names (read-only).

class pybop.simulators.failed_solution.FailedVariable[source]#

Container for a failed PyBaMM variable that returns np.inf.

Parameters:
  • name – Variable name

  • data – Array data, defaults to [np.inf]

  • sensitivities – Sensitivity data mapping parameter names to arrays

__post_init__() None[source]#

Validate inputs after initialisation.

data: numpy.ndarray#
name: str#
sensitivities: dict[str, numpy.ndarray]#