walberla::lbm::PerformanceLogger< FlagField_T > Class Template Reference

Detailed Description

template<typename FlagField_T>
class walberla::lbm::PerformanceLogger< FlagField_T >

Class for using the PerformanceEvaluation in a timeloop.

Providing a measurement interval, this class will regularly (every interval time steps) measure and report the LBM performance. At the end of the simulation logOverallResults() may be called to output minimum, maximum and average performance during the simulation run.

#include <PerformanceLogger.h>

Public Member Functions

 PerformanceLogger (const shared_ptr< StructuredBlockStorage > &blocks, const ConstBlockDataID &flagFieldId, const Set< FlagUID > &fluid, const uint_t interval, const Set< SUID > &requiredSelectors=Set< SUID >::emptySet(), const Set< SUID > &incompatibleSelectors=Set< SUID >::emptySet())
 
 PerformanceLogger (const shared_ptr< StructuredBlockStorage > &blocks, const ConstBlockDataID &flagFieldId, const Set< FlagUID > &fluid, const timeloop::ITimeloop *const timeloop, const uint_t interval, const Set< SUID > &requiredSelectors=Set< SUID >::emptySet(), const Set< SUID > &incompatibleSelectors=Set< SUID >::emptySet())
 
void operator() ()
 
void logOverallResultsOnRoot () const
 
void enableRefreshCellCountOnCall ()
 
void disableRefreshCellCountOnCall ()
 
void getBestResultsForSQLOnRoot (std::map< std::string, int > &integerProperties, std::map< std::string, double > &realProperties, std::map< std::string, std::string > &stringProperties)
 

Private Types

enum  Mode { MIN, MAX, AVG, LAST }
 

Private Member Functions

double getTiming (Mode mode) const
 

Private Attributes

PerformanceEvaluation< FlagField_TperformanceEvaluation_
 
uint_t interval_
 
uint_t timestep_
 
WcTimer timer_
 
bool refreshCellCountOnCall_
 
const timeloop::ITimelooptimeloop_
 

Member Enumeration Documentation

◆ Mode

template<typename FlagField_T >
enum walberla::lbm::PerformanceLogger::Mode
private
Enumerator
MIN 
MAX 
AVG 
LAST 

Constructor & Destructor Documentation

◆ PerformanceLogger() [1/2]

template<typename FlagField_T >
walberla::lbm::PerformanceLogger< FlagField_T >::PerformanceLogger ( const shared_ptr< StructuredBlockStorage > &  blocks,
const ConstBlockDataID flagFieldId,
const Set< FlagUID > &  fluid,
const uint_t  interval,
const Set< SUID > &  requiredSelectors = Set<SUID>::emptySet(),
const Set< SUID > &  incompatibleSelectors = Set<SUID>::emptySet() 
)

◆ PerformanceLogger() [2/2]

template<typename FlagField_T >
walberla::lbm::PerformanceLogger< FlagField_T >::PerformanceLogger ( const shared_ptr< StructuredBlockStorage > &  blocks,
const ConstBlockDataID flagFieldId,
const Set< FlagUID > &  fluid,
const timeloop::ITimeloop *const  timeloop,
const uint_t  interval,
const Set< SUID > &  requiredSelectors = Set<SUID>::emptySet(),
const Set< SUID > &  incompatibleSelectors = Set<SUID>::emptySet() 
)

Member Function Documentation

◆ disableRefreshCellCountOnCall()

template<typename FlagField_T >
void walberla::lbm::PerformanceLogger< FlagField_T >::disableRefreshCellCountOnCall ( )
inline

◆ enableRefreshCellCountOnCall()

template<typename FlagField_T >
void walberla::lbm::PerformanceLogger< FlagField_T >::enableRefreshCellCountOnCall ( )
inline

◆ getBestResultsForSQLOnRoot()

template<typename FlagField_T >
void walberla::lbm::PerformanceLogger< FlagField_T >::getBestResultsForSQLOnRoot ( std::map< std::string, int > &  integerProperties,
std::map< std::string, double > &  realProperties,
std::map< std::string, std::string > &  stringProperties 
)

◆ getTiming()

template<typename FlagField_T >
double walberla::lbm::PerformanceLogger< FlagField_T >::getTiming ( Mode  mode) const
private

◆ logOverallResultsOnRoot()

template<typename FlagField_T >
void walberla::lbm::PerformanceLogger< FlagField_T >::logOverallResultsOnRoot

◆ operator()()

template<typename FlagField_T >
void walberla::lbm::PerformanceLogger< FlagField_T >::operator()

Member Data Documentation

◆ interval_

template<typename FlagField_T >
uint_t walberla::lbm::PerformanceLogger< FlagField_T >::interval_
private

◆ performanceEvaluation_

template<typename FlagField_T >
PerformanceEvaluation<FlagField_T> walberla::lbm::PerformanceLogger< FlagField_T >::performanceEvaluation_
private

◆ refreshCellCountOnCall_

template<typename FlagField_T >
bool walberla::lbm::PerformanceLogger< FlagField_T >::refreshCellCountOnCall_
private

◆ timeloop_

template<typename FlagField_T >
const timeloop::ITimeloop* walberla::lbm::PerformanceLogger< FlagField_T >::timeloop_
private

◆ timer_

template<typename FlagField_T >
WcTimer walberla::lbm::PerformanceLogger< FlagField_T >::timer_
private

◆ timestep_

template<typename FlagField_T >
uint_t walberla::lbm::PerformanceLogger< FlagField_T >::timestep_
private

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