def test_diff(self): a = pybamm.StateVector(slice(0, 1)) y = np.array([5]) # negation self.assertEqual((-a).diff(a).evaluate(y=y), -1) self.assertEqual((-a).diff(-a).evaluate(), 1) # absolute value self.assertEqual((a**3).diff(a).evaluate(y=y), 3 * 5**2) self.assertEqual((abs(a**3)).diff(a).evaluate(y=y), 3 * 5**2) self.assertEqual((a**3).diff(a).evaluate(y=-y), 3 * 5**2) self.assertEqual((abs(a**3)).diff(a).evaluate(y=-y), -3 * 5**2) # sign self.assertEqual((pybamm.sign(a)).diff(a).evaluate(y=y), 0) # floor self.assertEqual((pybamm.Floor(a)).diff(a).evaluate(y=y), 0) # ceil self.assertEqual((pybamm.Ceiling(a)).diff(a).evaluate(y=y), 0) # spatial operator (not implemented) spatial_a = pybamm.SpatialOperator("name", a) with self.assertRaises(NotImplementedError): spatial_a.diff(a)
def test_diff(self): a = pybamm.StateVector(slice(0, 1)) y = np.array([5]) # negation self.assertEqual((-a).diff(a).evaluate(y=y), -1) self.assertEqual((-a).diff(-a).evaluate(), 1) # absolute value (not implemented) absa = abs(a) with self.assertRaises(pybamm.UndefinedOperationError): absa.diff(a) # spatial operator (not implemented) spatial_a = pybamm.SpatialOperator("name", a) with self.assertRaises(NotImplementedError): spatial_a.diff(a)
def test_spatial_operator(self): a = pybamm.Variable("a") b = pybamm.SpatialOperator("Operator", a) y = pybamm.StateVector(slice(0, 1)) with self.assertRaises(NotImplementedError): b.jac(y)
def test_spatial_operator(self): a = pybamm.Variable("a") b = pybamm.SpatialOperator("Operator", a) with self.assertRaises(NotImplementedError): b.jac(None)