![]() |
ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
#include <dp3m_heffte.impl.hpp>
Inheritance diagram for DipolarTuningAlgorithm< FloatType, Architecture, FFTConfig >:
Collaboration diagram for DipolarTuningAlgorithm< FloatType, Architecture, FFTConfig >:Public Member Functions | |
| DipolarTuningAlgorithm (System::System &system, decltype(dp3m) &input_dp3m, double prefactor, int timings, decltype(m_tune_limits) tune_limits) | |
| P3MParameters & | get_params () override |
| void | on_solver_change () const override |
| std::optional< std::string > | layer_correction_veto_r_cut (double) const override |
| void | setup_logger (bool verbose) override |
| std::tuple< double, double, double, double > | calculate_accuracy (Utils::Vector3i const &mesh, int cao, double r_cut_iL) const override |
| void | determine_mesh_limits () override |
| TuningAlgorithm::Parameters | get_time () override |
Public Member Functions inherited from TuningAlgorithm | |
| TuningAlgorithm (System::System &system, double prefactor, int timings) | |
| virtual | ~TuningAlgorithm ()=default |
| void | determine_r_cut_limits () |
| Determine a sensible range for the real-space cutoff. | |
| void | determine_cao_limits (int initial_cao) |
| Determine a sensible range for the charge assignment order. | |
| virtual std::optional< std::string > | fft_decomposition_veto (Utils::Vector3i const &) const |
| Veto FFT decomposition in non-cubic boxes. | |
| void | commit (Utils::Vector3i const &mesh, int cao, double r_cut_iL, double alpha_L) |
| Write tuned parameters to the P3M parameter struct. | |
| void | tune () |
Additional Inherited Members | |
Protected Member Functions inherited from TuningAlgorithm | |
| auto | get_n_trials () |
| void | increment_n_trials () |
| void | reset_n_trials () |
| double | get_m_time (Utils::Vector3i const &mesh, int &tuned_cao, double &tuned_r_cut_iL, double &tuned_alpha_L, double &tuned_accuracy) |
Get the optimal alpha and the corresponding computation time for a fixed mesh. | |
| double | get_mc_time (Utils::Vector3i const &mesh, int cao, double &tuned_r_cut_iL, double &tuned_alpha_L, double &tuned_accuracy) |
Get the optimal alpha and the corresponding computation time for a fixed mesh and cao. | |
Protected Attributes inherited from TuningAlgorithm | |
| System::System & | m_system |
| double | m_prefactor |
| std::unique_ptr< TuningLogger > | m_logger = nullptr |
| int | cao_min = -1 |
| int | cao_max = -1 |
| int | cao_best = -1 |
| double | m_r_cut_iL_min = -1. |
| double | m_r_cut_iL_max = -1. |
Static Protected Attributes inherited from TuningAlgorithm | |
| static auto constexpr | time_granularity = 5. |
| Granularity of the time measurement (milliseconds). | |
| static auto constexpr | max_n_consecutive_trials = 40 |
| Maximal number of consecutive trials that don't improve runtime. | |
| static auto constexpr | time_sentinel = std::numeric_limits<double>::max() |
| Value for invalid time measurements. | |
Definition at line 1023 of file dp3m_heffte.impl.hpp.
|
inline |
Definition at line 1029 of file dp3m_heffte.impl.hpp.
|
inlineoverridevirtual |
Implements TuningAlgorithm.
Definition at line 1055 of file dp3m_heffte.impl.hpp.
References P3MParameters::accuracy, System::System::box_geo, dp3m_k_space_error(), dp3m_real_space_error(), dp3m_rtbisection(), TuningAlgorithm::m_system, Utils::Vector< T, N >::norm(), P3MStateCommon< FloatType >::params, DipolarP3MState< FloatType, FFTConfig >::sum_dip_part, and DipolarP3MState< FloatType, FFTConfig >::sum_mu2.
|
inlineoverridevirtual |
Implements TuningAlgorithm.
Definition at line 1088 of file dp3m_heffte.impl.hpp.
References TuningAlgorithm::m_logger, P3MParameters::mesh, P3MStateCommon< FloatType >::params, and DipolarP3MState< FloatType, FFTConfig >::sum_dip_part.
Referenced by DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::tune().
|
inlineoverridevirtual |
Implements TuningAlgorithm.
Definition at line 1035 of file dp3m_heffte.impl.hpp.
References P3MStateCommon< FloatType >::params.
|
inlineoverridevirtual |
Implements TuningAlgorithm.
Definition at line 1110 of file dp3m_heffte.impl.hpp.
References Utils::Vector< T, N >::broadcast(), TuningAlgorithm::cao_best, TuningAlgorithm::get_m_time(), TuningAlgorithm::get_n_trials(), TuningAlgorithm::m_r_cut_iL_max, TuningAlgorithm::max_n_consecutive_trials, TuningAlgorithm::Parameters::mesh, TuningAlgorithm::reset_n_trials(), TuningAlgorithm::time_granularity, and TuningAlgorithm::time_sentinel.
|
inlineoverridevirtual |
Implements TuningAlgorithm.
Definition at line 1040 of file dp3m_heffte.impl.hpp.
|
inlineoverridevirtual |
Implements TuningAlgorithm.
Definition at line 1037 of file dp3m_heffte.impl.hpp.
References TuningAlgorithm::m_system, and System::System::on_dipoles_change().
|
inlineoverridevirtual |
Implements TuningAlgorithm.
Definition at line 1044 of file dp3m_heffte.impl.hpp.
References P3MParameters::accuracy, System::System::box_geo, TuningLogger::Dipolar, TuningAlgorithm::m_logger, TuningAlgorithm::m_prefactor, TuningAlgorithm::m_system, P3MStateCommon< FloatType >::params, DipolarP3MState< FloatType, FFTConfig >::sum_dip_part, DipolarP3MState< FloatType, FFTConfig >::sum_mu2, and this_node.
Referenced by DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::tune().