Skip to content

Commit 6ca684d

Browse files
committedMar 14, 2020
#858 remove make_semi_explicit
1 parent b341616 commit 6ca684d

File tree

2 files changed

+69
-1
lines changed

2 files changed

+69
-1
lines changed
 

‎pybamm/__init__.py

-1
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,6 @@ def version(formatted=False):
154154
from .models import standard_variables
155155
from .models.event import Event
156156
from .models.event import EventType
157-
from .models.make_semi_explicit import make_semi_explicit
158157

159158
# Battery models
160159
from .models.full_battery_models.base_battery_model import BaseBatteryModel
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
#
2+
# Tests for the Scalar class
3+
#
4+
import pybamm
5+
6+
import unittest
7+
import numpy as np
8+
9+
10+
class TestDDT(unittest.TestCase):
11+
def test_time_derivative(self):
12+
a = pybamm.Scalar(5).diff(pybamm.t)
13+
self.assertIsInstance(a, pybamm.Scalar)
14+
self.assertEqual(a.value, 0)
15+
16+
a = pybamm.t.diff(pybamm.t)
17+
self.assertIsInstance(a, pybamm.Scalar)
18+
self.assertEqual(a.value, 1)
19+
20+
a = (pybamm.t**2).diff(pybamm.t)
21+
self.assertEqual(a.id, (2 * pybamm.t ** 1 * 1).id)
22+
self.assertEqual(a.simplify().id, (2 * pybamm.t).id)
23+
self.assertEqual(a.evaluate(t=1), 2)
24+
25+
a =(2 + pybamm.t**2).diff(pybamm.t)
26+
self.assertEqual(a.simplify().id, (2*pybamm.t).id)
27+
self.assertEqual(a.evaluate(t=1), 2)
28+
29+
def test_time_derivative_of_variable(self):
30+
31+
a = (pybamm.Variable('a')).diff(pybamm.t)
32+
self.assertIsInstance(a, pybamm.VariableDot)
33+
self.assertEqual(a.name, "a'")
34+
35+
p = pybamm.Parameter('p')
36+
a = (1 + p*pybamm.Variable('a')).diff(pybamm.t).simplify()
37+
self.assertIsInstance(a, pybamm.Multiplication)
38+
self.assertEqual(a.children[0].name, 'p')
39+
self.assertEqual(a.children[1].name, "a'")
40+
41+
with self.assertRaises(pybamm.ModelError):
42+
a = (pybamm.Variable('a')).diff(pybamm.t).diff(pybamm.t)
43+
44+
with self.assertRaises(pybamm.ModelError):
45+
a = pybamm.ExternalVariable("a", 1).diff(pybamm.t)
46+
47+
def test_time_derivative_of_state_vector(self):
48+
49+
sv = pybamm.StateVector(slice(0, 10))
50+
y_dot = np.linspace(0, 2, 19)
51+
52+
a = sv.diff(pybamm.t)
53+
self.assertIsInstance(a, pybamm.StateVectorDot)
54+
self.assertEqual(a.name[-1], "'")
55+
np.testing.assert_array_equal(
56+
a.evaluate(y_dot=y_dot), np.linspace(0, 1, 10)[:, np.newaxis]
57+
)
58+
59+
with self.assertRaises(pybamm.ModelError):
60+
a = (sv).diff(pybamm.t).diff(pybamm.t)
61+
62+
if __name__ == "__main__":
63+
print("Add -v for more debug output")
64+
import sys
65+
66+
if "-v" in sys.argv:
67+
debug = True
68+
pybamm.settings.debug_mode = True
69+
unittest.main()

0 commit comments

Comments
 (0)
Please sign in to comment.