Hello dokken, thank you very much for your answer. I have modified my code according to your suggestion as follows:
progress = Progress('Time-stepping', num_steps)
J = derivative(F, T)
problem = NonlinearVariationalProblem(F, T, bcs, J)
solver = NonlinearVariationalSolver(problem)
prm = solver.parameters
prm['nonlinear_solver'] = 'newton'
prm['newton_solver']['absolute_tolerance'] = 1e-10
prm['newton_solver']['relative_tolerance'] = 1e-9
prm['newton_solver']['maximum_iterations'] = 25
prm['newton_solver']['linear_solver'] = 'mumps'
t = 0
plt.figure(figsize=(12,8))
for n in range(num_steps):
t += dt
solver.solve()
plot(T)
xdmffile_T.write(T, t)
timeseries_T.store(T.vector(), t)
T_n.assign(T)
set_log_level(LogLevel.PROGRESS)
progress += 1
set_log_level(LogLevel.ERROR)
set_log_level(LogLevel.INFO)
I am a beginner, I may not know the specific meaning of the above solver, but I can solve normally, and the speed is much faster, the following is some information output by the terminal, please help me to see if it is normal:
