walberla::pe_coupling::TimeStep Class Reference

Detailed Description

Carries out the the PE time steps, including sub iteration functionality.

It executes numberOfSubIterations PE steps within one timestep of size timeStepSize.

These PE sub iterations require, that the current external (e.g. hydrodynamic, gravitational, ...) forces and torques acting on each particle remains unchanged. Thus, a map is set up internally that stores and re-sets these forces and torques in each PE sub iteration.

Additionally, a function forceEvaluationFunc can be given that allows to evaluate different forces before the PE step is carried out. An example are particle-particle lubrication forces that have to be updated in each sub iteration.

#include <TimeStep.h>

Public Member Functions

 TimeStep (const shared_ptr< StructuredBlockStorage > &blockStorage, const BlockDataID &bodyStorageID, pe::cr::ICR &collisionResponse, const std::function< void(void)> &synchronizeFunc, const real_t timeStepSize=real_t(1), const uint_t numberOfSubIterations=uint_t(1), const std::function< void(void)> &forceEvaluationFunc=[](){})
 
void operator() ()
 

Private Attributes

const real_t timeStepSize_
 
const uint_t numberOfSubIterations_
 
shared_ptr< StructuredBlockStorageblockStorage_
 
const BlockDataIDbodyStorageID_
 
pe::cr::ICRcollisionResponse_
 
std::function< void(void)> synchronizeFunc_
 
std::function< void(void)> forceEvaluationFunc_
 

Constructor & Destructor Documentation

◆ TimeStep()

walberla::pe_coupling::TimeStep::TimeStep ( const shared_ptr< StructuredBlockStorage > &  blockStorage,
const BlockDataID bodyStorageID,
pe::cr::ICR collisionResponse,
const std::function< void(void)> &  synchronizeFunc,
const real_t  timeStepSize = real_t(1),
const uint_t  numberOfSubIterations = uint_t(1),
const std::function< void(void)> &  forceEvaluationFunc = [](){} 
)
inlineexplicit

Member Function Documentation

◆ operator()()

void walberla::pe_coupling::TimeStep::operator() ( )

Member Data Documentation

◆ blockStorage_

shared_ptr<StructuredBlockStorage> walberla::pe_coupling::TimeStep::blockStorage_
private

◆ bodyStorageID_

const BlockDataID& walberla::pe_coupling::TimeStep::bodyStorageID_
private

◆ collisionResponse_

pe::cr::ICR& walberla::pe_coupling::TimeStep::collisionResponse_
private

◆ forceEvaluationFunc_

std::function<void (void)> walberla::pe_coupling::TimeStep::forceEvaluationFunc_
private

◆ numberOfSubIterations_

const uint_t walberla::pe_coupling::TimeStep::numberOfSubIterations_
private

◆ synchronizeFunc_

std::function<void (void)> walberla::pe_coupling::TimeStep::synchronizeFunc_
private

◆ timeStepSize_

const real_t walberla::pe_coupling::TimeStep::timeStepSize_
private

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