Chrono_fsi

Description

Classes

class  chrono::fsi::ChBenchmarkTest
 Base class for a Chrono FSI benchmark test. More...
 
class  chrono::fsi::ChBenchmarkFixture< TEST, SKIP >
 Generic benchmark fixture for Chrono tests. More...
 

Macros

#define CH_BM_SIMULATION_LOOP(TEST_NAME, TEST, SKIP_STEPS, SIM_STEPS, REPETITIONS)
 Define and register a test named TEST_NAME using the specified ChBenchmark TEST. More...
 
#define CH_BM_SIMULATION_ONCE(TEST_NAME, TEST, SKIP_STEPS, SIM_STEPS, REPETITIONS)
 Define and register a test named TEST_NAME using the specified ChBenchmark TEST. More...
 

Functions

void chrono::fsi::ChBenchmarkTest::Simulate (int num_steps)
 
void chrono::fsi::ChBenchmarkTest::ResetTimers ()
 

Macro Definition Documentation

◆ CH_BM_SIMULATION_LOOP

#define CH_BM_SIMULATION_LOOP (   TEST_NAME,
  TEST,
  SKIP_STEPS,
  SIM_STEPS,
  REPETITIONS 
)
Value:
BENCHMARK_DEFINE_F(TEST_NAME, SimulateLoop)(benchmark::State & st) { \
while (st.KeepRunning()) { \
m_test->Simulate(SIM_STEPS); \
} \
Report(st); \
} \
BENCHMARK_REGISTER_F(TEST_NAME, SimulateLoop)->Unit(benchmark::kMillisecond)->Repetitions(REPETITIONS);

Define and register a test named TEST_NAME using the specified ChBenchmark TEST.

This method benchmarks consecutive (in time) simulation batches and is therefore appropriate for cases where the cost per step is expected to be relatively uniform. An initial SKIP_STEPS integration steps are performed for hot start, after which measurements are conducted for batches of SIM_STEPS integration steps. The test is repeated REPETITIONS number of times, to collect statistics. Note that each reported benchmark result may require simulations of several batches (controlled by the benchmark library in order to stabilize timing results).

◆ CH_BM_SIMULATION_ONCE

#define CH_BM_SIMULATION_ONCE (   TEST_NAME,
  TEST,
  SKIP_STEPS,
  SIM_STEPS,
  REPETITIONS 
)
Value:
BENCHMARK_DEFINE_F(TEST_NAME, SimulateOnce)(benchmark::State & st) { \
Reset(SKIP_STEPS); \
while (st.KeepRunning()) { \
m_test->Simulate(SIM_STEPS); \
} \
Report(st); \
} \
BENCHMARK_REGISTER_F(TEST_NAME, SimulateOnce) \
->Unit(benchmark::kMillisecond) \
->Iterations(1) \
->Repetitions(REPETITIONS);

Define and register a test named TEST_NAME using the specified ChBenchmark TEST.

This method benchmarks a single simulation interval and is appropriate for cases where the cost of simulating a given length time interval can vary significantly from interval to interval. For each measurement, the underlying model is recreated from scratch. An initial SKIP_STEPS integration steps are performed for hot start, after which a single batch of SIM_STEPS is timed and recorded. The test is repeated REPETITIONS number of times, to collect statistics.

Generic benchmark fixture for Chrono tests.
Definition: ChBenchmark.h:144