|
2 | 2 |
|
3 | 3 |
|
4 | 4 | def run_Lorenz(useMPI, maxiter=4, newton_maxiter=5, num_procs=1): |
5 | | - from pySDC.implementations.hooks.log_work import LogWork |
| 5 | + from pySDC.implementations.hooks.log_work import LogWork, LogSDCIterations |
6 | 6 | from pySDC.implementations.sweeper_classes.generic_implicit import generic_implicit |
7 | 7 | from pySDC.implementations.problem_classes.Lorenz import LorenzAttractor |
8 | 8 | from pySDC.helpers.stats_helper import get_sorted |
@@ -32,7 +32,7 @@ def run_Lorenz(useMPI, maxiter=4, newton_maxiter=5, num_procs=1): |
32 | 32 | # initialize controller parameters |
33 | 33 | controller_params = {} |
34 | 34 | controller_params['logger_level'] = 30 |
35 | | - controller_params['hook_class'] = LogWork |
| 35 | + controller_params['hook_class'] = [LogWork, LogSDCIterations] |
36 | 36 | controller_params['mssdc_jac'] = False |
37 | 37 |
|
38 | 38 | # fill description dictionary for easy step instantiation |
@@ -69,13 +69,16 @@ def run_Lorenz(useMPI, maxiter=4, newton_maxiter=5, num_procs=1): |
69 | 69 |
|
70 | 70 | uend, stats = controller.run(u0=uinit, t0=t0, Tend=num_steps * num_procs * level_params['dt']) |
71 | 71 |
|
| 72 | + # print(stats) |
72 | 73 | for i in range(num_procs): |
73 | 74 | res = { |
74 | 75 | key: [me[1] for me in get_sorted(stats, type=key, comm=comm, process=i)] |
75 | | - for key in ['work_newton', 'work_rhs'] |
| 76 | + for key in ['work_newton', 'work_rhs', LogSDCIterations.name] |
76 | 77 | } |
77 | 78 |
|
78 | 79 | expected = {} |
| 80 | + expected[LogSDCIterations.name] = maxiter |
| 81 | + |
79 | 82 | if i == 0: |
80 | 83 | # we evaluate all nodes when beginning the step and then every node except the initial conditions in every iteration |
81 | 84 | expected['work_rhs'] = maxiter * sweeper_params['num_nodes'] + sweeper_params['num_nodes'] + 1 |
|
0 commit comments