Generic FSI interface

Description

Base classes for a generic FSI Chrono interface.

Collaboration diagram for Generic FSI interface:

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...
 
struct  chrono::fsi::FsiBodyState
 Definition of a body state. More...
 
struct  chrono::fsi::FsiBodyForce
 Definition of a body wrench (force + torque). More...
 
struct  chrono::fsi::FsiMeshState
 Definition of node states for a mesh. More...
 
struct  chrono::fsi::FsiMeshForce
 Definition of a node forces for a mesh. More...
 
struct  chrono::fsi::FsiBody
 Description of a rigid body exposed to the FSI system. More...
 
struct  chrono::fsi::FsiMesh1D
 Description of an FEA mesh with 1-D segments exposed to the FSI system. More...
 
struct  chrono::fsi::FsiMesh2D
 Description of an FEA mesh with 2-D faces exposed to the FSI system. More...
 
class  chrono::fsi::ChFsiFluidSystem
 Base class for an FSI-aware fluid solver. More...
 
class  chrono::fsi::ChFsiInterface
 Base class for processing the interface between Chrono and FSI modules. More...
 
class  chrono::fsi::ChFsiInterfaceGeneric
 Generic interface between a Chrono multibody system and a fluid system. More...
 
class  chrono::fsi::ChFsiSystem
 Base class for a system for fluid-solid interaction problems. 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: ChFsiBenchmark.h:144