26#if defined(ESPRESSO_P3M) || defined(ESPRESSO_DP3M)
37 : m_verbose{verbose}, m_name{
std::move(name)}, m_mode{mode} {}
41 std::printf(
"mesh cao r_cut_iL alpha_L err "
42 "rs_err ks_err time [ms]\n");
46 template <
typename... Types>
49 row(parameter_set...);
50 std::printf(
" %-8.2f\n", time);
54 template <
typename... Types>
55 void log_skip(std::string
const &reason, Types... parameter_set)
const {
57 row(parameter_set...);
58 std::printf(
" %s\n", reason.c_str());
64 std::printf(
"%-4d %-3d cao too large for this mesh\n", mesh, cao);
69 std::size_t n_particles,
double sum_prop)
const {
71 std::string particle_trait;
72 std::string particle_property;
75 particle_trait =
"charged";
76 particle_property =
"Sum[q_i^2]";
79 particle_trait =
"magnetic";
80 particle_property =
"Sum[mu_i^2]";
83 std::printf(
"%s tune parameters: Accuracy goal = %.5e prefactor = %.5e\n"
84 "System: box_l = %.5e # %s part = %zu %s = %.5e\n",
85 m_name.c_str(), accuracy, prefactor, box_l,
86 particle_trait.c_str(), n_particles,
87 particle_property.c_str(), sum_prop);
92 double alpha_L,
double accuracy,
double time)
const {
95 "\nresulting parameters: mesh: (%d, %d, %d), cao: %d, r_cut_iL: %.4e,"
96 "\n alpha_L: %.4e, accuracy: %.4e, time: %.2f\n",
97 mesh[0], mesh[1], mesh[2], cao, r_cut_iL, alpha_L, accuracy, time);
103 std::printf(
"fixed cao %d\n", cao);
109 std::printf(
"fixed r_cut_iL %f\n", r_cut_iL);
115 std::printf(
"fixed mesh (%d, %d, %d)\n", mesh[0], mesh[1], mesh[2]);
126 void row(
int mesh,
int cao,
double r_cut_iL,
double alpha_L,
double accuracy,
127 double rs_err,
double ks_err)
const {
128 std::printf(
"%-4d %-3d %.5e %.5e %.3e %.3e %.3e", mesh, cao, r_cut_iL,
129 alpha_L, accuracy, rs_err, ks_err);
Vector implementation and trait types for boost qvm interoperability.
TuningLogger(bool verbose, std::string name, Mode mode)
void log_tuning_start() const
void report_fixed_mesh(Utils::Vector3i const &mesh) const
void log_cao_too_large(int mesh, int cao) const
auto const & get_name() const
void report_fixed_cao(int cao) const
void tuning_results(Utils::Vector3i const &mesh, int cao, double r_cut_iL, double alpha_L, double accuracy, double time) const
void log_success(double time, Types... parameter_set) const
void report_fixed_r_cut_iL(double r_cut_iL) const
void tuning_goals(double accuracy, double prefactor, double box_l, std::size_t n_particles, double sum_prop) const
void log_skip(std::string const &reason, Types... parameter_set) const