11#include <kernel/util/string.hpp>
18 enum class Status : std::uint8_t;
54 inline std::ostream& operator<<(std::ostream& os,
ExpressionType type)
63 return os <<
"precond";
65 return os <<
"precond_l";
67 return os <<
"precond_r";
69 return os <<
"smoother";
71 return os <<
"coarse";
73 return os <<
"defect";
75 return os <<
"timings";
77 return os <<
"level_timings";
83 return os <<
"uzawa_s";
85 return os <<
"uzawa_a";
87 return os <<
"unknown";
158 precond_name(precond_name_in)
179 precond_name(precond_name_in)
200 precond_name(precond_name_in)
221 smoother_name(smoother_name_in)
238 String coarse_solver_name;
242 coarse_solver_name(coarse_solver_name_in)
324 double solver_toe, mpi_execute_reduction, mpi_execute_blas2, mpi_execute_blas3, mpi_execute_collective, mpi_wait_reduction, mpi_wait_blas2, mpi_wait_blas3, mpi_wait_collective;
326 explicit ExpressionTimings(
String name,
double solver_toe_in,
double mpi_execute_reduction_in,
double mpi_execute_blas2_in,
double mpi_execute_blas3_in,
327 double mpi_execute_collective_in,
double mpi_wait_reduction_in,
double mpi_wait_blas2_in,
double mpi_wait_blas3_in,
double mpi_wait_collective_in) :
329 solver_toe(solver_toe_in),
330 mpi_execute_reduction(mpi_execute_reduction_in),
331 mpi_execute_blas2(mpi_execute_blas2_in),
332 mpi_execute_blas3(mpi_execute_blas3_in),
333 mpi_execute_collective(mpi_execute_collective_in),
334 mpi_wait_reduction(mpi_wait_reduction_in),
335 mpi_wait_blas2(mpi_wait_blas2_in),
336 mpi_wait_blas3(mpi_wait_blas3_in),
337 mpi_wait_collective(mpi_wait_collective_in)
355 double level_toe, mpi_execute_reduction, mpi_execute_blas2, mpi_execute_blas3, mpi_execute_collective, mpi_wait_reduction, mpi_wait_blas2, mpi_wait_blas3, mpi_wait_collective;
357 explicit ExpressionLevelTimings(
String name,
Index level_in,
double level_toe_in,
double mpi_execute_reduction_in,
double mpi_execute_blas2_in,
double mpi_execute_blas3_in,
358 double mpi_execute_collective_in,
double mpi_wait_reduction_in,
double mpi_wait_blas2_in,
double mpi_wait_blas3_in,
double mpi_wait_collective_in) :
361 level_toe(level_toe_in),
362 mpi_execute_reduction(mpi_execute_reduction_in),
363 mpi_execute_blas2(mpi_execute_blas2_in),
364 mpi_execute_blas3(mpi_execute_blas3_in),
365 mpi_execute_collective(mpi_execute_collective_in),
366 mpi_wait_reduction(mpi_wait_reduction_in),
367 mpi_wait_blas2(mpi_wait_blas2_in),
368 mpi_wait_blas3(mpi_wait_blas3_in),
369 mpi_wait_collective(mpi_wait_collective_in)
390 solver_s_name(solver_s_name_in)
411 solver_a_name(solver_a_name_in)
Index iters
the iteration count needed in this solve process
Status status
the status result of the solver call
String class implementation.
@ defect
left-preconditioned defect minimization
Status
Solver status return codes enumeration.
@ iter
Plot every iteration (if applicable)
ExpressionType
Expression Type enumeration.
@ timings
annotate iterations timings
@ call_uzawa_a
call A matrix solver (uzawa complement)
@ prol
prolonation (multigrid)
@ end_solve
end last solve process
@ call_precond_l
call L preconditioner
@ defect
annotate iterations defect
@ rest
restriction (multigrid)
@ call_uzawa_s
call S matrix solver (uzawa complement)
@ call_coarse_solver
call coarse grid solver
@ call_smoother
call smoother
@ call_precond_r
call R preconditioner
@ level_timings
annotate level timings
@ call_precond
call preconditioner
@ start_solve
start new solve process
std::uint64_t Index
Index data type.