ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
DipolarTuningAlgorithm< FloatType, Architecture > Class Template Reference
+ Inheritance diagram for DipolarTuningAlgorithm< FloatType, Architecture >:
+ Collaboration diagram for DipolarTuningAlgorithm< FloatType, Architecture >:

Public Member Functions

 DipolarTuningAlgorithm (System::System &system, decltype(dp3m) &input_dp3m, double prefactor, int timings, decltype(m_tune_limits) tune_limits)
 
P3MParametersget_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::Systemm_system
 
double m_prefactor
 
std::unique_ptr< TuningLoggerm_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 = 2.
 Granularity of the time measurement (milliseconds).
 
static auto constexpr max_n_consecutive_trials = 20
 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.
 

Detailed Description

template<typename FloatType, Arch Architecture>
class DipolarTuningAlgorithm< FloatType, Architecture >

Definition at line 536 of file dp3m.cpp.

Constructor & Destructor Documentation

◆ DipolarTuningAlgorithm()

template<typename FloatType , Arch Architecture>
DipolarTuningAlgorithm< FloatType, Architecture >::DipolarTuningAlgorithm ( System::System system,
decltype(dp3m) &  input_dp3m,
double  prefactor,
int  timings,
decltype(m_tune_limits)  tune_limits 
)
inline

Definition at line 542 of file dp3m.cpp.

Member Function Documentation

◆ calculate_accuracy()

template<typename FloatType , Arch Architecture>
std::tuple< double, double, double, double > DipolarTuningAlgorithm< FloatType, Architecture >::calculate_accuracy ( Utils::Vector3i const &  mesh,
int  cao,
double  r_cut_iL 
) const
inlineoverridevirtual

◆ determine_mesh_limits()

template<typename FloatType , Arch Architecture>
void DipolarTuningAlgorithm< FloatType, Architecture >::determine_mesh_limits ( )
inlineoverridevirtual

◆ get_params()

template<typename FloatType , Arch Architecture>
P3MParameters & DipolarTuningAlgorithm< FloatType, Architecture >::get_params ( )
inlineoverridevirtual

Implements TuningAlgorithm.

Definition at line 548 of file dp3m.cpp.

References p3m_data_struct< FloatType >::params.

◆ get_time()

◆ layer_correction_veto_r_cut()

template<typename FloatType , Arch Architecture>
std::optional< std::string > DipolarTuningAlgorithm< FloatType, Architecture >::layer_correction_veto_r_cut ( double  ) const
inlineoverridevirtual

Implements TuningAlgorithm.

Definition at line 553 of file dp3m.cpp.

◆ on_solver_change()

template<typename FloatType , Arch Architecture>
void DipolarTuningAlgorithm< FloatType, Architecture >::on_solver_change ( ) const
inlineoverridevirtual

Implements TuningAlgorithm.

Definition at line 550 of file dp3m.cpp.

References TuningAlgorithm::m_system, and System::System::on_dipoles_change().

◆ setup_logger()


The documentation for this class was generated from the following file: