Initializes the bodies with the velocity of the surrounding fluid.
The class uses an interpolator to obtain the approximate value of the fluid velocity at the bodies' position, and then sets the bodies' velocity accordingly.
Whether or not a body gets treated by this initializer depends on the return value of 'dpmBodySelectorFct'.
For more infos on interpolators, see field interpolators in src/field/interpolators.
#include <BodyVelocityInitializer.h>
Public Types | |
using | Vec3Field_T = GhostLayerField< Vector3< real_t >, 1 > |
using | Vec3FieldInterpolator_T = FieldInterpolator_T< Vec3Field_T, FlagField_T > |
Public Member Functions | |
BodyVelocityInitializer (const shared_ptr< StructuredBlockStorage > &blockStorage, const BlockDataID &bodyStorageID, const BlockDataID &flagFieldID, const Set< FlagUID > &domainFlags, const BlockDataID &velocityFieldID, const std::function< bool(pe::BodyID)> &dpmBodySelectorFct=selectRegularBodies) | |
void | operator() () |
Private Attributes | |
shared_ptr< StructuredBlockStorage > | blockStorage_ |
BlockDataID | bodyStorageID_ |
BlockDataID | velocityFieldInterpolatorID_ |
std::function< bool(pe::BodyID)> | dpmBodySelectorFct_ |
using walberla::pe_coupling::discrete_particle_methods::BodyVelocityInitializer< FlagField_T, FieldInterpolator_T >::Vec3Field_T = GhostLayerField<Vector3<real_t>, 1> |
using walberla::pe_coupling::discrete_particle_methods::BodyVelocityInitializer< FlagField_T, FieldInterpolator_T >::Vec3FieldInterpolator_T = FieldInterpolator_T<Vec3Field_T, FlagField_T> |
|
inline |
|
inline |
|
private |
|
private |
|
private |
|
private |