--- /dev/null
+27c27
+<
+---
+> #include "../example_test.h"
+785c785
+< TimerOutput::summary,
+---
+> TimerOutput::never,
+1590,1591c1590,1593
+< solver.solve(system_matrix, solution, system_rhs, P);
+<
+---
+> //solver.solve(system_matrix, solution, system_rhs, P);
+> check_solver_within_range(pcout,solver.solve(system_matrix, solution, system_rhs, P),
+> solver_control.last_step(),
+> 118, 163);
+1593,1594c1595,1596
+< pcout << " Solved in " << solver_control.last_step() << " iterations."
+< << std::endl;
+---
+> // pcout << " Solved in " << solver_control.last_step() << " iterations."
+> // << std::endl;
+1799c1801
+< for (unsigned int cycle = 0; cycle < par.number_of_time_steps;
+---
+> for (unsigned int cycle = 0; cycle < 3;
+1939c1941
+< prm_file = "parameters.prm";
+---
+> prm_file = "../../../source/step-70/parameters.prm";
--- /dev/null
+Running StokesImmersedProblem<2> using Trilinos.
+Cycle 0:
+Time : 0, time step: 0.002
+ Number of degrees of freedom: 9539 (8450+1089 -- 0+0)
+Tracer particles: 1313
+Solid particles: 9216
+Solver stopped within 118 - 163 iterations
+ Number of degrees of freedom: 9845 (8722+1123 -- 9216+1313)
+Cycle 1:
+Time : 0.002, time step: 0.002
+Solver stopped within 118 - 163 iterations
+Cycle 2:
+Time : 0.004, time step: 0.002
+Solver stopped within 118 - 163 iterations
--- /dev/null
+941c941
+< TimerOutput timer(std::cout, TimerOutput::summary, TimerOutput::wall_times);
+---
+> TimerOutput timer(std::cout, TimerOutput::never, TimerOutput::wall_times);
+992c992,993
+< while (last_residual_norm > tolerance);
+---
+> while (last_residual_norm > 0.1);
+> (void)tolerance;
+1018c1019
+< prm_file = "parameters.prm";
+---
+> prm_file = "../../../source/step-72/parameters.prm";
--- /dev/null
+******** Assembly approach ********
+Unassisted implementation (full hand linearization).
+
+Mesh refinement step 0
+ Initial residual: 1.53143
+ Residual: 1.08746
+ Residual: 0.966748
+ Residual: 0.859602
+ Residual: 0.766462
+ Residual: 0.685475
+
+Mesh refinement step 1
+ Initial residual: 0.868959
+ Residual: 0.762125
+ Residual: 0.677792
+ Residual: 0.605762
+ Residual: 0.542748
+ Residual: 0.48704
+
+Mesh refinement step 2
+ Initial residual: 0.426445
+ Residual: 0.382731
+ Residual: 0.343865
+ Residual: 0.30918
+ Residual: 0.278147
+ Residual: 0.250327
+
+Mesh refinement step 3
+ Initial residual: 0.282026
+ Residual: 0.253146
+ Residual: 0.227414
+ Residual: 0.20441
+ Residual: 0.183803
+ Residual: 0.165319
+
+Mesh refinement step 4
+ Initial residual: 0.154404
+ Residual: 0.138723
+ Residual: 0.124694
+ Residual: 0.112124
+ Residual: 0.100847
+ Residual: 0.0907222
+
+Mesh refinement step 5
+ Initial residual: 0.0819655
+ Residual: 0.0737378
+ Residual: 0.0663465
+ Residual: 0.0597032
+ Residual: 0.0537298
+ Residual: 0.0483571
+
--- /dev/null
+975c975,976
+< for (unsigned int cycle = 0; cycle < max_cycle; ++cycle)
+---
+> (void)max_cycle;
+> for (unsigned int cycle = 0; cycle < 5; ++cycle)
--- /dev/null
+Cycle 0
+ Number of active cells : 192
+ Number of degrees of freedom : 3072
+ Error in the L2 norm : 0.000323585
+ Error in the H1 seminorm : 0.0296202
+ Error in the energy norm : 0.043578
+ Estimated error : 0.136067
+
+Cycle 1
+ Number of active cells : 249
+ Number of degrees of freedom : 3984
+ Error in the L2 norm : 0.000114739
+ Error in the H1 seminorm : 0.0186571
+ Error in the energy norm : 0.027452
+ Estimated error : 0.0857186
+
+Cycle 2
+ Number of active cells : 321
+ Number of degrees of freedom : 5136
+ Error in the L2 norm : 4.17566e-05
+ Error in the H1 seminorm : 0.0117526
+ Error in the energy norm : 0.0172936
+ Estimated error : 0.0540022
+
+Cycle 3
+ Number of active cells : 417
+ Number of degrees of freedom : 6672
+ Error in the L2 norm : 1.5555e-05
+ Error in the H1 seminorm : 0.0074036
+ Error in the energy norm : 0.0108943
+ Estimated error : 0.0340226
+
+Cycle 4
+ Number of active cells : 540
+ Number of degrees of freedom : 8640
+ Error in the L2 norm : 5.90745e-06
+ Error in the H1 seminorm : 0.00466398
+ Error in the energy norm : 0.00686303
+ Estimated error : 0.021436
+
+degree = 3
+| cycle | cells | dofs | L2 | H1 | Energy | Estimator |
+| 0 | 192 | 3072 | 3.236e-04 | 2.962e-02 | 4.358e-02 | 1.361e-01 |
+| 1 | 249 | 3984 | 1.147e-04 | 1.866e-02 | 2.745e-02 | 8.572e-02 |
+| 2 | 321 | 5136 | 4.176e-05 | 1.175e-02 | 1.729e-02 | 5.400e-02 |
+| 3 | 417 | 6672 | 1.556e-05 | 7.404e-03 | 1.089e-02 | 3.402e-02 |
+| 4 | 540 | 8640 | 5.907e-06 | 4.664e-03 | 6.863e-03 | 2.144e-02 |
--- /dev/null
+31c31
+<
+---
+> #include "../example_test.h"
+1236,1246c1236,1256
+< solve_with_gmg(solver_control,
+< laplace_operator,
+< completely_distributed_solution,
+< system_rhs,
+< prm.mg_data,
+< mapping_collection,
+< dof_handler,
+< quadrature_collection);
+<
+< pcout << " Solved in " << solver_control.last_step() << " iterations."
+< << std::endl;
+---
+> // solve_with_gmg(solver_control,
+> // laplace_operator,
+> // completely_distributed_solution,
+> // system_rhs,
+> // prm.mg_data,
+> // mapping_collection,
+> // dof_handler,
+> // quadrature_collection);
+> check_solver_within_range(pcout,
+> solve_with_gmg(solver_control,
+> laplace_operator,
+> completely_distributed_solution,
+> system_rhs,
+> prm.mg_data,
+> mapping_collection,
+> dof_handler,
+> quadrature_collection),
+> solver_control.last_step(),
+> 6, 8);
+> // pcout << " Solved in " << solver_control.last_step() << " iterations."
+> // << std::endl;
+1460c1470
+< for (unsigned int cycle = 0; cycle < prm.n_cycles; ++cycle)
+---
+> for (unsigned int cycle = 0; cycle < 3; ++cycle)
+1480,1481c1490,1491
+< computing_timer.print_summary();
+< computing_timer.reset();
+---
+> // computing_timer.print_summary();
+> // computing_timer.reset();
--- /dev/null
+Running with Trilinos on 1 MPI rank(s)...
+Calculating transformation matrices...
+Cycle 0:
+ Number of active cells: 3072
+ by partition: 3072
+ Number of degrees of freedom: 12545
+ by partition: 12545
+ Number of constraints: 512
+ by partition: 512
+ Frequencies of poly. degrees: 2:3072
+Solver stopped within 6 - 8 iterations
+
+Cycle 1:
+ Number of active cells: 3351
+ by partition: 3351
+ Number of degrees of freedom: 18228
+ by partition: 18228
+ Number of constraints: 1122
+ by partition: 1122
+ Frequencies of poly. degrees: 2:2522 3:829
+Solver stopped within 6 - 8 iterations
+
+Cycle 2:
+ Number of active cells: 3651
+ by partition: 3651
+ Number of degrees of freedom: 26519
+ by partition: 26519
+ Number of constraints: 2836
+ by partition: 2836
+ Frequencies of poly. degrees: 2:2385 3:758 4:508
+Solver stopped within 6 - 8 iterations
+
-66,67c66,67
+65,66c65,66
< constexpr unsigned int n_global_refinements = 2;
< constexpr unsigned int fe_degree = 5;
---
> constexpr unsigned int n_global_refinements = 1;
> constexpr unsigned int fe_degree = 3;
-89c89
+88c88
< constexpr double final_time = testcase == 0 ? 10 : 2.0;
---
> constexpr double final_time = testcase == 0 ? 10 : 0.5;
-1507,1509c1507
+1506,1508c1506
< const std::string filename =
< "solution_" + Utilities::int_to_string(result_number, 3) + ".vtu";
< data_out.write_vtu_in_parallel(filename, MPI_COMM_WORLD);
---
> (void)result_number;
-1519,1521d1516
+1518,1520d1515
< const unsigned int n_vect_number = VectorizedArrayType::size();
< const unsigned int n_vect_bits = 8 * sizeof(Number) * n_vect_number;
<
-1525,1529d1519
+1524,1528d1518
< pcout << "Vectorization over " << n_vect_number << ' '
< << (std::is_same_v<Number, double> ? "doubles" : "floats") << " = "
< << n_vect_bits << " bits ("
< << Utilities::System::get_current_vectorization_level() << ')'
< << std::endl;
-1593d1582
+1592d1581
< timer.print_wall_time_statistics(MPI_COMM_WORLD);
-498c498
+497c497
< for (unsigned int refinement_cycle = 0; refinement_cycle < 6;
---
> for (unsigned int refinement_cycle = 0; refinement_cycle < 4;
-586c586
+585c585
< computing_timer.print_summary();
---
> //computing_timer.print_summary();
--- /dev/null
+
+===========================================
+Cycle 0:
+Number of active cells: 1
+Number of degrees of freedom: 2
+
+Time step 0 at t=0.0002
+Time step 1000 at t=0.2002
+Time step 2000 at t=0.4002
+Time step 3000 at t=0.6002
+Time step 4000 at t=0.8002
+
+===========================================
+Cycle 1:
+Number of active cells: 2
+Number of degrees of freedom: 3
+
+Time step 0 at t=0.0002
+Time step 1000 at t=0.2002
+Time step 2000 at t=0.4002
+Time step 3000 at t=0.6002
+Time step 4000 at t=0.8002
+
+===========================================
+Cycle 2:
+Number of active cells: 4
+Number of degrees of freedom: 5
+
+Time step 0 at t=0.0002
+Time step 1000 at t=0.2002
+Time step 2000 at t=0.4002
+Time step 3000 at t=0.6002
+Time step 4000 at t=0.8002
+
+===========================================
+Cycle 3:
+Number of active cells: 8
+Number of degrees of freedom: 9
+
+Time step 0 at t=0.0002
+Time step 1000 at t=0.2002
+Time step 2000 at t=0.4002
+Time step 3000 at t=0.6002
+Time step 4000 at t=0.8002
+
+cells dofs L2 H1 Linfty
+ 1 2 1.667e-01 5.774e-01 2.222e-01
+ 2 3 3.906e-02 2.889e-01 5.380e-02
+ 4 5 9.679e-03 1.444e-01 1.357e-02
+ 8 9 2.405e-03 7.218e-02 3.419e-03
+
+n cells H1 L2
+ 1 5.774e-01 - - 1.667e-01 - -
+ 2 2.889e-01 2.00 1.00 3.906e-02 4.27 2.09
+ 4 1.444e-01 2.00 1.00 9.679e-03 4.04 2.01
+ 8 7.218e-02 2.00 1.00 2.405e-03 4.02 2.01
--- /dev/null
+292c292
+< , timer(std::cout, TimerOutput::summary, TimerOutput::wall_times)
+---
+> , timer(std::cout, TimerOutput::never, TimerOutput::wall_times)
+2240c2240
+<
+---
+> (void)max_iterations;
+2305,2306c2305,2308
+< std::cout << " found workable step after " << k + 1
+< << " iterations" << std::endl;
+---
+> if ((0<k+1)&&(k+1<5))
+> std::cout<< " found workable step within 1 to 5 iterations " << std::endl;
+> // std::cout << " found workable step after " << k + 1
+> // << " iterations" << std::endl;
+2408c2410
+< while ((iteration_number < max_iterations) &&
+---
+> while ((iteration_number < 5) &&
+2431c2433
+< (iteration_number < max_iterations));
+---
+> (iteration_number < 5));
--- /dev/null
+filter r is: 0.251
+Starting outer step in iteration 0 with barrier parameter 25
+ Starting inner step in iteration 0 with merit function penalty multiplier 1
+ current watchdog state merit is: 252.431; target merit is 3766.57
+ found workable step within 1 to 5 iterations
+ Checking convergence. Current rhs norm is 266.879, target is 0.25
+ Starting inner step in iteration 1 with merit function penalty multiplier 7117.96
+ current watchdog state merit is: 22725.6; target merit is 252.43
+ current watchdog state merit is: 4928.21; target merit is 252.43
+ current watchdog state merit is: 311.272; target merit is 252.43
+ current watchdog state merit is: 241.415; target merit is 252.43
+ found workable step within 1 to 5 iterations
+