Initializes the complete domain with a Poiseuille (Channel) Flow.
Configuration file syntax:
scenario:
flowAxis: specifying the direction of the channel, i.e. the axis along which the fluid is flowing 0 for x, 1 for y, 2 = z
#include <PoiseuilleInitializer.h>
Public Types | |
enum | Scenario { RECT_2D, PIPE } |
enum | BoundaryType { PRESSURE_DRIVEN, VELOCITY_DRIVEN, FORCE_DRIVEN } |
using | Axis = uint_t |
Public Member Functions | |
Poiseuille (StructuredBlockStorage &blocks, BlockDataID &handlerID, BlockDataID &pdfFieldID, field::FlagUID noSlipFlag, field::FlagUID ubbFlag, field::FlagUID pressureFlag1, field::FlagUID pressureFlag2) | |
void | init (BlockStorage &, const Config::BlockHandle &blockHandle) override |
void | init (const Config::BlockHandle &blockHandle) |
void | init (Scenario scenario, BoundaryType boundaryType, real_t pressureDiff, Axis flowAxis, Axis parabolaAxis=INVALID_AXIS) |
![]() | |
virtual | ~Initializer ()=default |
Static Public Attributes | |
static const uint_t | X_AXIS = 0 |
static const uint_t | Y_AXIS = 1 |
static const uint_t | Z_AXIS = 2 |
static const uint_t | INVALID_AXIS = 3 |
Protected Member Functions | |
void | initVelocityBoundary (Scenario scenario, Axis flowAxis, real_t maxVelocity, Axis parabolaAxis) |
void | initPressureBoundary (Axis flowAxis, real_t pressureDiff) |
void | initNoSlipBoundaries (Scenario scenario, Axis flowAxis, Axis parabolaAxis) |
void | setInitVelocity (Scenario scenario, Axis flowAxis, real_t maxVelocity, Axis parabolaAxis) |
real_t | getVelocity (const Cell &globalCell, Scenario scenario, Axis flowAxis, real_t maxVelocity, Axis parabolaAxis) |
real_t | getPipeRadius (Scenario scenario, Axis flowAxis, Axis parabolaAxis) const |
real_t | velocityFromPressureDiff (Scenario scenario, real_t pressureDiff, Axis flowAxis, Axis parabolaAxis) |
real_t | pressureDiffFromVelocity (Scenario scenario, real_t velocity, Axis flowAxis, Axis parabolaAxis) |
Axis | checkParabolaAxis (Axis parabolaAxis, Axis flowAxis) |
Protected Attributes | |
StructuredBlockStorage & | storage_ |
BlockDataID | handlerID_ |
BlockDataID | pdfFieldID_ |
field::FlagUID | noSlipFlag_ |
field::FlagUID | ubbFlag_ |
field::FlagUID | pressureFlag1_ |
field::FlagUID | pressureFlag2_ |
real_t | latticeViscosity_ |
Vector3< real_t > | midPoint_ |
Vector3< real_t > | maxPoint_ |
using walberla::lbm::initializer::Poiseuille< BoundaryHandling_T, LM, SimplePressure, UBB >::Axis = uint_t |
enum walberla::lbm::initializer::Poiseuille::BoundaryType |
enum walberla::lbm::initializer::Poiseuille::Scenario |
walberla::lbm::initializer::Poiseuille< BH_T, LM, SP, UBB >::Poiseuille | ( | StructuredBlockStorage & | blocks, |
BlockDataID & | handlerID, | ||
BlockDataID & | pdfFieldID, | ||
field::FlagUID | noSlipFlag, | ||
field::FlagUID | ubbFlag, | ||
field::FlagUID | pressureFlag1, | ||
field::FlagUID | pressureFlag2 | ||
) |
|
protected |
|
protected |
|
protected |
|
inlineoverridevirtual |
Implements walberla::geometry::initializer::Initializer.
void walberla::lbm::initializer::Poiseuille< BH_T, LM, SP, UBB >::init | ( | const Config::BlockHandle & | blockHandle | ) |
void walberla::lbm::initializer::Poiseuille< BH_T, LM, SP, UBB >::init | ( | Scenario | scenario, |
BoundaryType | boundaryType, | ||
real_t | pressureDiff, | ||
Axis | flowAxis, | ||
Axis | parabolaAxis = INVALID_AXIS |
||
) |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
static |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
static |
|
static |
|
static |