cache the jacobian matrix
This commit is contained in:
parent
898d3dc8cc
commit
29b218835c
1 changed files with 6 additions and 1 deletions
|
|
@ -456,6 +456,11 @@ class Equation:
|
||||||
unknown = list(unknown)
|
unknown = list(unknown)
|
||||||
equations = list(equations)
|
equations = list(equations)
|
||||||
|
|
||||||
|
J_template = np.empty((n, n), dtype=object)
|
||||||
|
for i in range(n):
|
||||||
|
for j in range(n):
|
||||||
|
J_template[i][j] = equations[i].partial(unknown[j].name)
|
||||||
|
|
||||||
for t in tqdm([n * dt for n in range(int(tmax/dt))]):
|
for t in tqdm([n * dt for n in range(int(tmax/dt))]):
|
||||||
err = 1
|
err = 1
|
||||||
iterations = 0
|
iterations = 0
|
||||||
|
|
@ -470,7 +475,7 @@ class Equation:
|
||||||
F[i] = equations[i].evaluate(dico)
|
F[i] = equations[i].evaluate(dico)
|
||||||
for j in range(n):
|
for j in range(n):
|
||||||
# print(equations[0])
|
# print(equations[0])
|
||||||
J[i][j] = equations[i].partial(unknown[j].name).evaluate(dico)
|
J[i][j] = J_template[i][j].evaluate(dico)
|
||||||
|
|
||||||
# print(J, F)
|
# print(J, F)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue