walberla::pe_coupling::discrete_particle_methods::AveragedInteractionForceFieldToForceFieldAdder Class Reference

Detailed Description

Adds an accumulated force field value to another force field, applying continuous averaging.

The force field contains all external force, etc acting on the fluid, except the fluid-solid interaction forces from the DPS coupling. The interaction force field only contains the interaction forces, simply added up over several subcycling timesteps, with the maximum number given by maximumAveragingSteps. This class will average the interaction force over the currently carried out sub cycles (counted via an internal counter) and add this averaged quantity to the force field, to get rid of possible oscillations in the interaction force and have a valid force field in each sub cycling iteration.

Can also be used to simply add the current interaction force field to the force field if maximumAveragingSteps = 1.

#include <AveragedInteractionForceFieldToForceFieldAdder.h>

Public Types

using ForceField_T = GhostLayerField< Vector3< real_t >, 1 >
 

Public Member Functions

 AveragedInteractionForceFieldToForceFieldAdder (const shared_ptr< StructuredBlockStorage > &blockStorage, const BlockDataID &forceFieldID, const ConstBlockDataID &interactionForceFieldID, uint_t maximumAveragingSteps)
 
void operator() ()
 
void resetAveragingCounter ()
 

Private Attributes

shared_ptr< StructuredBlockStorageblockStorage_
 
const BlockDataID forceFieldID_
 
const ConstBlockDataID interactionForceFieldID_
 
uint_t maximumAveragingSteps_
 
uint_t averagingCounter_
 

Member Typedef Documentation

◆ ForceField_T

Constructor & Destructor Documentation

◆ AveragedInteractionForceFieldToForceFieldAdder()

walberla::pe_coupling::discrete_particle_methods::AveragedInteractionForceFieldToForceFieldAdder::AveragedInteractionForceFieldToForceFieldAdder ( const shared_ptr< StructuredBlockStorage > &  blockStorage,
const BlockDataID forceFieldID,
const ConstBlockDataID interactionForceFieldID,
uint_t  maximumAveragingSteps 
)
inline

Member Function Documentation

◆ operator()()

void walberla::pe_coupling::discrete_particle_methods::AveragedInteractionForceFieldToForceFieldAdder::operator() ( )
inline

◆ resetAveragingCounter()

void walberla::pe_coupling::discrete_particle_methods::AveragedInteractionForceFieldToForceFieldAdder::resetAveragingCounter ( )
inline

Member Data Documentation

◆ averagingCounter_

uint_t walberla::pe_coupling::discrete_particle_methods::AveragedInteractionForceFieldToForceFieldAdder::averagingCounter_
private

◆ blockStorage_

shared_ptr<StructuredBlockStorage> walberla::pe_coupling::discrete_particle_methods::AveragedInteractionForceFieldToForceFieldAdder::blockStorage_
private

◆ forceFieldID_

const BlockDataID walberla::pe_coupling::discrete_particle_methods::AveragedInteractionForceFieldToForceFieldAdder::forceFieldID_
private

◆ interactionForceFieldID_

const ConstBlockDataID walberla::pe_coupling::discrete_particle_methods::AveragedInteractionForceFieldToForceFieldAdder::interactionForceFieldID_
private

◆ maximumAveragingSteps_

uint_t walberla::pe_coupling::discrete_particle_methods::AveragedInteractionForceFieldToForceFieldAdder::maximumAveragingSteps_
private

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