--- /dev/null
+1003,1005c1003,1006
+< smoother_data[0].smoothing_range = 1e-3;
+< smoother_data[0].degree = numbers::invalid_unsigned_int;
+< smoother_data[0].eig_cg_n_iterations = mg_matrices[0].m();
+---
+> smoother_data[0].smoothing_range = 20;
+> smoother_data[0].degree = 5;
+> smoother_data[0].max_eigenvalue = 2;
+> smoother_data[0].eig_cg_n_iterations = 0;
+1006a1008,1009
+> smoother_data[level].eigenvalue_algorithm =
+> internal::EigenvalueAlgorithm::power_iteration;
+1082d1084
+< pcout << "Total setup time (wall) " << setup_time << "s\n";
+1092,1093c1094
+< << (solver_control.last_step() < 10 ? " " : " ") << "(CPU/wall) "
+< << time.cpu_time() << "s/" << time.wall_time() << "s\n";
+---
+> << std::endl;
+1151,1161c1152
+< {
+< const unsigned int n_vect_doubles = VectorizedArray<double>::size();
+< const unsigned int n_vect_bits = 8 * sizeof(double) * n_vect_doubles;
+<
+< pcout << "Vectorization over " << n_vect_doubles
+< << " doubles = " << n_vect_bits << " bits ("
+< << Utilities::System::get_current_vectorization_level() << ')'
+< << std::endl;
+< }
+<
+< for (unsigned int cycle = 0; cycle < 9 - dim; ++cycle)
+---
+> for (unsigned int cycle = 0; cycle < 5; ++cycle)
--- /dev/null
+Cycle 0
+Number of degrees of freedom: 125
+Time solve (5 iterations)
+
+Cycle 1
+Number of degrees of freedom: 729
+Time solve (6 iterations)
+
+Cycle 2
+Number of degrees of freedom: 4913
+Time solve (6 iterations)
+
+Cycle 3
+Number of degrees of freedom: 35937
+Time solve (6 iterations)
+
+Cycle 4
+Number of degrees of freedom: 274625
+Time solve (6 iterations)
+
--- /dev/null
+59c59
+< // it is passed as a template argument to the implementation of the
+---
+> // it is passed as a template argument to the implementation of the
+352c352
+< , n_global_refinements(10 - 2 * dim)
+---
+> , n_global_refinements(9 - 2 * dim)
+355c355
+< , final_time(10.)
+---
+> , final_time(-5.)
+522,534d521
+< {
+< pcout << "Number of MPI ranks: "
+< << Utilities::MPI::n_mpi_processes(MPI_COMM_WORLD) << std::endl;
+< pcout << "Number of threads on each rank: "
+< << MultithreadInfo::n_threads() << std::endl;
+< const unsigned int n_vect_doubles = VectorizedArray<double>::size();
+< const unsigned int n_vect_bits = 8 * sizeof(double) * n_vect_doubles;
+< pcout << "Vectorization over " << n_vect_doubles
+< << " doubles = " << n_vect_bits << " bits ("
+< << Utilities::System::get_current_vectorization_level() << ')'
+< << std::endl
+< << std::endl;
+< }
+596,597d582
+< double wtime = 0;
+< double output_time = 0;
+605d589
+< wtime += timer.wall_time();
+607d590
+< timer.restart();
+610,611d592
+<
+< output_time += timer.wall_time();
+613d593
+< timer.restart();
+615d594
+< output_time += timer.wall_time();
+619,624d597
+<
+< pcout << " Average wallclock time per time step: "
+< << wtime / timestep_number << 's' << std::endl;
+<
+< pcout << " Spent " << output_time << "s on output and " << wtime
+< << "s on computations." << std::endl;
+645c618
+< argc, argv, numbers::invalid_unsigned_int);
+---
+> argc, argv, 2);
--- /dev/null
+ Number of global active cells: 3892
+ Number of degrees of freedom: 63529
+ Time step size: 0.00586166, finest cell: 0.234375
+
+ Time: -10, solution norm: 9.5599
+ Time: -8.83, solution norm: 23.497
+ Time: -7.66, solution norm: 29.495
+ Time: -6.48, solution norm: 27.202
+ Time: -5.31, solution norm: 18.398
+ Time: -5, solution norm: 15.171
+
+ Performed 853 time steps.
--- /dev/null
+74c74
+< const unsigned int degree_finite_element = 8;
+---
+> const unsigned int degree_finite_element = 5;
+1232c1232
+< smoother_data[level].eig_cg_n_iterations = 10;
+---
+> smoother_data[level].eig_cg_n_iterations = 15;
+1236,1237c1236,1238
+< smoother_data[0].smoothing_range = 2e-2;
+< smoother_data[0].degree = numbers::invalid_unsigned_int;
+---
+> smoother_data[0].smoothing_range = 100;
+> smoother_data[0].degree = 15;
+> smoother_data[0].max_eigenvalue = 4;
+1239a1241,1242
+> smoother_data[level].eigenvalue_algorithm =
+> internal::EigenvalueAlgorithm::power_iteration;
+1266d1268
+< pcout << "Total setup time " << setup_time << " s\n";
+1272,1273c1274,1275
+< pcout << "Time solve (" << solver_control.last_step() << " iterations) "
+< << time.wall_time() << " s" << std::endl;
+---
+> pcout << "Time solve (" << solver_control.last_step() << " iterations) "
+> << std::endl;
+1320c1322
+< for (unsigned int cycle = 0; cycle < 9 - dim; ++cycle)
+---
+> for (unsigned int cycle = 0; cycle < 3; ++cycle)
--- /dev/null
+Running with 1 MPI process, element FE_DGQHermite<3>(5)
+
+Cycle 0
+Number of degrees of freedom: 1728
+Time solve (13 iterations)
+Verification via L2 error: 0.667141
+
+Cycle 1
+Number of degrees of freedom: 13824
+Time solve (14 iterations)
+Verification via L2 error: 0.0232412
+
+Cycle 2
+Number of degrees of freedom: 110592
+Time solve (14 iterations)
+Verification via L2 error: 0.00034861
+
--- /dev/null
+23a24
+> #include <deal.II/base/multithread_info.h>
+268c269
+< triangulation.refine_global(9 - 2 * dim);
+---
+> triangulation.refine_global(2);
+619d619
+< timer.print_summary();
+644,645d643
+< std::cout << " Memory consumption cache: "
+< << 1e-6 * mapping.memory_consumption() << " MB" << std::endl;
+651,652d648
+<
+< timer.print_summary();
+660a657
+> dealii::MultithreadInfo::set_thread_limit(2);
--- /dev/null
+
+====== Running with the basic MappingQ class ======
+
+ Number of active cells: 832
+ Number of degrees of freedom: 22981
+ Number of solver iterations: 138
+ L2 error vs exact solution: 1.39878e-06
+ H1 error vs exact solution: 5.16394e-05
+ Max cell-wise error estimate: 0.0217657
+====== Running with the optimized MappingQCache class ======
+
+ Number of active cells: 832
+ Number of degrees of freedom: 22981
+ Number of solver iterations: 138
+ L2 error vs exact solution: 1.39878e-06
+ H1 error vs exact solution: 5.16394e-05
+ Max cell-wise error estimate: 0.0217657