Skip to content

Commit 96c6a41

Browse files
committed
#858 add y_dot arg to all evaluate functions
1 parent 4c971a6 commit 96c6a41

File tree

7 files changed

+17
-12
lines changed

7 files changed

+17
-12
lines changed

pybamm/expression_tree/array.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,6 @@ def new_copy(self):
9898
self.entries_string,
9999
)
100100

101-
def _base_evaluate(self, t=None, y=None, u=None):
101+
def _base_evaluate(self, t=None, y=None, y_dot=None, u=None):
102102
""" See :meth:`pybamm.Symbol._base_evaluate()`. """
103103
return self._entries

pybamm/expression_tree/independent_variable.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def new_copy(self):
5151
""" See :meth:`pybamm.Symbol.new_copy()`. """
5252
return Time()
5353

54-
def _base_evaluate(self, t, y=None, u=None):
54+
def _base_evaluate(self, t, y=None, y_dot=None, u=None):
5555
""" See :meth:`pybamm.Symbol._base_evaluate()`. """
5656
if t is None:
5757
raise ValueError("t must be provided")

pybamm/expression_tree/input_parameter.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def _jac(self, variable):
3636
""" See :meth:`pybamm.Symbol._jac()`. """
3737
return pybamm.Scalar(0)
3838

39-
def _base_evaluate(self, t=None, y=None, u=None):
39+
def _base_evaluate(self, t=None, y=None, y_dot=None, u=None):
4040
# u should be a dictionary
4141
# convert 'None' to empty dictionary for more informative error
4242
if u is None:

pybamm/expression_tree/scalar.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def set_id(self):
5151
(self.__class__, self.name) + tuple(self.domain) + tuple(str(self._value))
5252
)
5353

54-
def _base_evaluate(self, t=None, y=None, u=None):
54+
def _base_evaluate(self, t=None, y=None, y_dot=None, u=None):
5555
""" See :meth:`pybamm.Symbol._base_evaluate()`. """
5656
return self._value
5757

pybamm/expression_tree/state_vector.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ def __init__(
241241
auxiliary_domains=auxiliary_domains,
242242
evaluation_array=evaluation_array)
243243

244-
def _base_evaluate(self, t=None, y=None, u=None):
244+
def _base_evaluate(self, t=None, y=None, y_dot=None, u=None):
245245
""" See :meth:`pybamm.Symbol._base_evaluate()`. """
246246
if y is None:
247247
raise TypeError("StateVector cannot evaluate input 'y=None'")

pybamm/expression_tree/symbol.py

+11-6
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,7 @@ def _jac(self, variable):
506506
"""
507507
raise NotImplementedError
508508

509-
def _base_evaluate(self, t=None, y=None, u=None):
509+
def _base_evaluate(self, t=None, y=None, y_dot=None, u=None):
510510
"""evaluate expression tree
511511
512512
will raise a ``NotImplementedError`` if this member function has not
@@ -520,7 +520,10 @@ def _base_evaluate(self, t=None, y=None, u=None):
520520
time at which to evaluate (default None)
521521
522522
y : numpy.array, optional
523-
array to evaluate when solving (default None)
523+
array with state values to evaluate when solving (default None)
524+
525+
y_dot : numpy.array, optional
526+
array with time derivatives of state values to evaluate when solving (default None)
524527
525528
"""
526529
raise NotImplementedError(
@@ -530,7 +533,7 @@ def _base_evaluate(self, t=None, y=None, u=None):
530533
)
531534
)
532535

533-
def evaluate(self, t=None, y=None, u=None, known_evals=None):
536+
def evaluate(self, t=None, y=None, y_dot=None, u=None, known_evals=None):
534537
"""Evaluate expression tree (wrapper to allow using dict of known values).
535538
If the dict 'known_evals' is provided, the dict is searched for self.id; if
536539
self.id is in the keys, return that value; otherwise, evaluate using
@@ -541,7 +544,9 @@ def evaluate(self, t=None, y=None, u=None, known_evals=None):
541544
t : float or numeric type, optional
542545
time at which to evaluate (default None)
543546
y : numpy.array, optional
544-
array to evaluate when solving (default None)
547+
array with state values to evaluate when solving (default None)
548+
y_dot : numpy.array, optional
549+
array with time derivatives of state values to evaluate when solving (default None)
545550
u : dict, optional
546551
dictionary of inputs to use when solving (default None)
547552
known_evals : dict, optional
@@ -556,10 +561,10 @@ def evaluate(self, t=None, y=None, u=None, known_evals=None):
556561
"""
557562
if known_evals is not None:
558563
if self.id not in known_evals:
559-
known_evals[self.id] = self._base_evaluate(t, y, u)
564+
known_evals[self.id] = self._base_evaluate(t, y, y_dot, u)
560565
return known_evals[self.id], known_evals
561566
else:
562-
return self._base_evaluate(t, y, u)
567+
return self._base_evaluate(t, y, y_dot, u)
563568

564569
def evaluate_for_shape(self):
565570
"""Evaluate expression tree to find its shape. For symbols that cannot be

pybamm/expression_tree/variable.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ def _evaluate_for_shape(self):
8484
""" See :meth:`pybamm.Symbol.evaluate_for_shape_using_domain()` """
8585
return np.nan * np.ones((self.size, 1))
8686

87-
def _base_evaluate(self, t=None, y=None, u=None):
87+
def _base_evaluate(self, t=None, y=None, y_dot=None, u=None):
8888
# u should be a dictionary
8989
# convert 'None' to empty dictionary for more informative error
9090
if u is None:

0 commit comments

Comments
 (0)