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

Public Member Functions

 CoulombTuningAlgorithm (System::System &system, auto &input_p3m, double prefactor, int timings)
 
void on_solver_change () const override
 
void setup_logger (bool verbose) override
 
std::optional< std::string > layer_correction_veto_r_cut (double r_cut) const 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.
 
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 ()
 

Protected Member Functions

P3MParametersget_params () override
 
- 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.
 

Additional Inherited Members

- 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 CoulombTuningAlgorithm< FloatType, Architecture >

Definition at line 595 of file p3m.cpp.

Constructor & Destructor Documentation

◆ CoulombTuningAlgorithm()

template<typename FloatType , Arch Architecture>
CoulombTuningAlgorithm< FloatType, Architecture >::CoulombTuningAlgorithm ( System::System system,
auto &  input_p3m,
double  prefactor,
int  timings 
)
inline

Definition at line 605 of file p3m.cpp.

Member Function Documentation

◆ calculate_accuracy()

template<typename FloatType , Arch Architecture>
std::tuple< double, double, double, double > CoulombTuningAlgorithm< 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 CoulombTuningAlgorithm< FloatType, Architecture >::determine_mesh_limits ( )
inlineoverridevirtual

◆ get_params()

template<typename FloatType , Arch Architecture>
P3MParameters & CoulombTuningAlgorithm< FloatType, Architecture >::get_params ( )
inlineoverrideprotectedvirtual

Implements TuningAlgorithm.

Definition at line 602 of file p3m.cpp.

References p3m_data_struct< FloatType >::params.

◆ get_time()

◆ layer_correction_veto_r_cut()

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

Implements TuningAlgorithm.

Definition at line 627 of file p3m.cpp.

References System::System::coulomb, Coulomb::Solver::impl, and TuningAlgorithm::m_system.

◆ on_solver_change()

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

Implements TuningAlgorithm.

Definition at line 609 of file p3m.cpp.

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

◆ setup_logger()


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