diff --git a/pybamm/expression_tree/symbol.py b/pybamm/expression_tree/symbol.py index d3f2dfba2f..c59c69060f 100644 --- a/pybamm/expression_tree/symbol.py +++ b/pybamm/expression_tree/symbol.py @@ -615,9 +615,10 @@ def is_constant(self): def evaluate_ignoring_errors(self, t=0): """ Evaluates the expression. If a node exists in the tree that cannot be evaluated - as a scalar or vector (e.g. Time, Parameter, Variable, StateVector, - InputParameter), then None is returned. Otherwise the result of the evaluation - is given + as a scalar or vector (e.g. Time, Parameter, Variable, StateVector), then None + is returned. If there is an InputParameter in the tree then a 1 is returned. + Otherwise the result of the evaluation is given. + See Also -------- diff --git a/tests/unit/test_expression_tree/test_symbol.py b/tests/unit/test_expression_tree/test_symbol.py index dbff68dd3a..a8462f2559 100644 --- a/tests/unit/test_expression_tree/test_symbol.py +++ b/tests/unit/test_expression_tree/test_symbol.py @@ -168,6 +168,13 @@ def test_symbol_evaluation(self): with self.assertRaises(NotImplementedError): a.evaluate() + def test_evaluate_ignoring_errors(self): + self.assertIsNone(pybamm.t.evaluate_ignoring_errors(t=None)) + self.assertEqual(pybamm.t.evaluate_ignoring_errors(t=0), 0) + self.assertIsNone(pybamm.Parameter("a").evaluate_ignoring_errors()) + self.assertIsNone(pybamm.StateVector(slice(0,1)).evaluate_ignoring_errors()) + self.assertEqual(pybamm.InputParameter("a").evaluate_ignoring_errors(), 1) + def test_symbol_is_constant(self): a = pybamm.Variable("a") self.assertFalse(a.is_constant())