template<typename LatticeModel_T, typename Filter_T, typename DensityVelocityIn_T, typename DensityVelocityOut_T>
class walberla::pe_coupling::discrete_particle_methods::GNSSweep< LatticeModel_T, Filter_T, DensityVelocityIn_T, DensityVelocityOut_T >
Sweep for the LBM formulation of the generalized Navier Stokes equations.
Method is taken from: Z. Guo, T. S. Zhao - "Lattice Boltzmann model for incompressible flows through porous media", Phys. Rev. E 66 (2002)036304. doi:10.1103/PhysRevE.66.036304. Note: when an external forcing is present, use the GNSExternalForceToForceFieldAdder class to apply the correct external force (i.e. fluid-volume-fraction * external-force ) Note: the calculated velocity is the volume averaged one!
A LBM-forcing model that supports spatially (and temporally) varying forces has to be used, e.g. GuoField.
|
| GNSSweep (const BlockDataID &pdfFieldID, const BlockDataID &solidVolumeFractionFieldID, const Filter_T &_filter=walberla::field::DefaultEvaluationFilter(), const DensityVelocityIn_T &_densityVelocityIn=lbm::DefaultDensityEquilibriumVelocityCalculation(), const DensityVelocityOut_T &_densityVelocityOut=lbm::DefaultDensityVelocityCallback()) |
|
| GNSSweep (const BlockDataID &src, const BlockDataID &dst, const BlockDataID &solidVolumeFractionFieldID, const Filter_T &_filter=walberla::field::DefaultEvaluationFilter(), const DensityVelocityIn_T &_densityVelocityIn=lbm::DefaultDensityEquilibriumVelocityCalculation(), const DensityVelocityOut_T &_densityVelocityOut=lbm::DefaultDensityVelocityCallback()) |
|
void | operator() (IBlock *const block, const uint_t numberOfGhostLayersToInclude=uint_t(0)) |
|
void | streamCollide (IBlock *const block, const uint_t numberOfGhostLayersToInclude=uint_t(0)) |
|
void | stream (IBlock *const block, const uint_t numberOfGhostLayersToInclude=uint_t(0)) |
|
void | collide (IBlock *const block, const uint_t numberOfGhostLayersToInclude=uint_t(0)) |
|
ScalarField_T * | getSolidVolumeFractionField (IBlock *const block) const |
|
void | getFields (IBlock *const block, PdfField_T *&src, PdfField_T *&dst, ScalarField_T *&solidVolumeFractionField) |
|
| SweepBase (const BlockDataID &pdfField, const Filter_T &_filter=walberla::field::DefaultEvaluationFilter(), const DensityVelocityIn_T &_densityVelocityIn=DefaultDensityEquilibriumVelocityCalculation(), const DensityVelocityOut_T &_densityVelocityOut=DefaultDensityVelocityCallback()) |
|
| SweepBase (const BlockDataID &src, const BlockDataID &dst, const Filter_T &_filter=walberla::field::DefaultEvaluationFilter(), const DensityVelocityIn_T &_densityVelocityIn=DefaultDensityEquilibriumVelocityCalculation(), const DensityVelocityOut_T &_densityVelocityOut=DefaultDensityVelocityCallback()) |
|
virtual | ~SweepBase () |
|
void | filter (IBlock &block) |
|
bool | filter (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const |
|
void | densityVelocityIn (IBlock &block) |
|
real_t | densityVelocityIn (Vector3< real_t > &velocity, const PdfField_T *const field, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) |
|
void | densityVelocityOut (IBlock &block) |
|
void | densityVelocityOut (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const LatticeModel_T &lm, const Vector3< real_t > &velocity, const real_t rho) |
|