Evaluator of the added (virtual) mass force based on the given added mass correlation.
The added mass force is evaluated for each body (requires interpolation of several quantities from the fluid fields) and then applied onto them. The corresponding reaction force is added to the fluid via the given distributor.
Note that the fluid velocity (and its derivatives) has to be the fluid-phase velocity (and not the volume-averaged velocity).
Whether or not a body gets treated by the evaluator depends on the return value of 'dpmBodySelectorFct'.
For more infos on interpolators, see field interpolators in src/field/interpolators. For more infos on distributors, see src/field/distributors.
#include <AddedMassForceEvaluator.h>
Public Types | |
using | Vec3Field_T = GhostLayerField< Vector3< real_t >, 1 > |
using | Vec3FieldInterpolator_T = FieldInterpolator_T< Vec3Field_T, FlagField_T > |
using | ForceDistributor_T = Distributor_T< Vec3Field_T, FlagField_T > |
Public Member Functions | |
AddedMassForceEvaluator (const shared_ptr< StructuredBlockStorage > &blockStorage, const BlockDataID &forceFieldID, const BlockDataID &bodyStorageID, const BlockDataID &flagFieldID, const Set< FlagUID > &domainFlags, const BlockDataID &velocityTimeDerivativeFieldID, const std::function< Vector3< real_t >(const Vector3< real_t > &, const Vector3< real_t > &, real_t, real_t)> &addedMassForceCorrelationFunction, const shared_ptr< BodyVelocityTimeDerivativeEvaluator > &bodyVelocityTimeDerivativeEvaluator, const std::function< bool(pe::BodyID)> &dpmBodySelectorFct=selectRegularBodies) | |
void | operator() () |
Private Attributes | |
shared_ptr< StructuredBlockStorage > | blockStorage_ |
const BlockDataID | bodyStorageID_ |
std::function< Vector3< real_t > const Vector3< real_t > &, const Vector3< real_t > &, real_t, real_t)> | addedMassForceCorrelationFunction_ |
shared_ptr< BodyVelocityTimeDerivativeEvaluator > | bodyVelocityTimeDerivativeEvaluator_ |
std::function< bool(pe::BodyID)> | dpmBodySelectorFct_ |
BlockDataID | velocityTimeDerivativeFieldInterpolatorID_ |
BlockDataID | forceDistributorID_ |
using walberla::pe_coupling::discrete_particle_methods::AddedMassForceEvaluator< FlagField_T, FieldInterpolator_T, Distributor_T >::ForceDistributor_T = Distributor_T<Vec3Field_T, FlagField_T> |
using walberla::pe_coupling::discrete_particle_methods::AddedMassForceEvaluator< FlagField_T, FieldInterpolator_T, Distributor_T >::Vec3Field_T = GhostLayerField<Vector3<real_t>, 1> |
using walberla::pe_coupling::discrete_particle_methods::AddedMassForceEvaluator< FlagField_T, FieldInterpolator_T, Distributor_T >::Vec3FieldInterpolator_T = FieldInterpolator_T<Vec3Field_T, FlagField_T> |
|
inline |
void walberla::pe_coupling::discrete_particle_methods::AddedMassForceEvaluator< FlagField_T, FieldInterpolator_T, Distributor_T >::operator() |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |