cache the jacobian matrix

This commit is contained in:
Didictateur 2026-02-16 12:16:45 +01:00
parent 898d3dc8cc
commit 29b218835c

View file

@ -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)