walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT > Class Template Reference

Detailed Description

template<typename LatticeModel, typename FlagFieldT>
class walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >

Creates a default boundary handling for LBM simulations.

This functor is usually used like

typedef lbm::DefaultBoundaryHandlingFactory< LatticeModel_T, FlagField_T > Factory;
BlockDataID bid = Factory::addBoundaryHandlingToStorage( blocks, "boundary handling", flagFieldId, pdfFieldId,
vel0, vel1, pressure0, pressure1, setOfDomainFlags );

It adds no slip, free slip, velocity and pressure boundaries to the boundary handler. The registered FlagUIDs can be accessed via the get...() functions. The following boundary conditions and flags are available:

Boundary Condition FlagUID BoundaryUID
NoSlip getNoSlip() getNoSlipBoundaryUID()
FreeSlip getFreeSlip() getFreeSlipBoundaryUID()
SimpleUBB getVelocity0() getVelocity0BoundaryUID()
SimpleUBB getVelocity1() getVelocity1BoundaryUID()
SimplePressure getPressure0() getPressure0BoundaryUID()
SimplePressure getPressure1() getPressure1BoundaryUID()
Template Parameters
LatticeModelThe lattice model used for the simulation
FlagFieldTType of the used flag field

#include <DefaultBoundaryHandling.h>

Public Types

using flag_t = typename FlagFieldT::flag_t
 
using Stencil = typename LatticeModel::Stencil
 
using BcNoSlip = NoSlip< LatticeModel, flag_t >
 
using BcFreeSlip = FreeSlip< LatticeModel, FlagFieldT >
 
using BcSimpleUBB = SimpleUBB< LatticeModel, flag_t >
 
using BcSimplePressure = SimplePressure< LatticeModel, flag_t >
 
using Velocity = Vector3< real_t >
 
using PdfFieldLM = PdfField< LatticeModel >
 
using BoundaryHandling = walberla::boundary::BoundaryHandling< FlagFieldT, Stencil, BcNoSlip, BcFreeSlip, BcSimpleUBB, BcSimpleUBB, BcSimplePressure, BcSimplePressure >
 

Public Member Functions

 DefaultBoundaryHandlingFactory (const BlockDataID &flagField, const BlockDataID &pdfField, const Set< FlagUID > &flagUIDSet, const Velocity velocity0, const Velocity velocity1, const real_t pressure0, const real_t pressure1, const typename BoundaryHandling::Mode boundaryHandlingTraversalMode)
 
BoundaryHandlingoperator() (walberla::IBlock *const block, const walberla::StructuredBlockStorage *const storage) const
 

Static Public Member Functions

static BlockDataID addBoundaryHandlingToStorage (const shared_ptr< StructuredBlockStorage > &bs, const std::string &identifier, BlockDataID flagFieldID, BlockDataID pdfFieldID, const Set< FlagUID > &flagUIDSet, const Vector3< real_t > &velocity0, const Vector3< real_t > &velocity1, const real_t pressure0, const real_t pressure1)
 
static BlockDataID addBoundaryHandlingToStorage (const shared_ptr< StructuredBlockStorage > &bs, const std::string &identifier, BlockDataID flagFieldID, BlockDataID pdfFieldID, const Set< FlagUID > &flagUIDSet, const Vector3< real_t > &velocity0, const Vector3< real_t > &velocity1, const real_t pressure0, const real_t pressure1, const typename BoundaryHandling::Mode boundaryHandlingTraversalMode)
 
static const walberla::FlagUID & getNoSlip ()
 
static const walberla::FlagUID & getFreeSlip ()
 
static const walberla::FlagUID & getVelocity0 ()
 
static const walberla::FlagUID & getVelocity1 ()
 
static const walberla::FlagUID & getPressure0 ()
 
static const walberla::FlagUID & getPressure1 ()
 
static const walberla::BoundaryUID & getNoSlipBoundaryUID ()
 
static const walberla::BoundaryUID & getFreeSlipBoundaryUID ()
 
static const walberla::BoundaryUID & getVelocity0BoundaryUID ()
 
static const walberla::BoundaryUID & getVelocity1BoundaryUID ()
 
static const walberla::BoundaryUID & getPressure0BoundaryUID ()
 
static const walberla::BoundaryUID & getPressure1BoundaryUID ()
 

Private Attributes

BlockDataID flagField_
 
BlockDataID pdfField_
 
const Set< FlagUID > flagUIDSet_
 
Velocity velocity0_
 
Velocity velocity1_
 
real_t pressure0_
 
real_t pressure1_
 
const BoundaryHandling::Mode boundaryHandlingTraversalMode_
 

Member Typedef Documentation

◆ BcFreeSlip

template<typename LatticeModel , typename FlagFieldT >
using walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::BcFreeSlip = FreeSlip<LatticeModel, FlagFieldT>

◆ BcNoSlip

template<typename LatticeModel , typename FlagFieldT >
using walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::BcNoSlip = NoSlip<LatticeModel, flag_t>

◆ BcSimplePressure

template<typename LatticeModel , typename FlagFieldT >
using walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::BcSimplePressure = SimplePressure<LatticeModel, flag_t>

◆ BcSimpleUBB

template<typename LatticeModel , typename FlagFieldT >
using walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::BcSimpleUBB = SimpleUBB<LatticeModel, flag_t>

◆ BoundaryHandling

template<typename LatticeModel , typename FlagFieldT >
using walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::BoundaryHandling = walberla::boundary::BoundaryHandling<FlagFieldT, Stencil, BcNoSlip, BcFreeSlip, BcSimpleUBB, BcSimpleUBB, BcSimplePressure, BcSimplePressure>

◆ flag_t

template<typename LatticeModel , typename FlagFieldT >
using walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::flag_t = typename FlagFieldT::flag_t

◆ PdfFieldLM

template<typename LatticeModel , typename FlagFieldT >
using walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::PdfFieldLM = PdfField<LatticeModel>

◆ Stencil

template<typename LatticeModel , typename FlagFieldT >
using walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::Stencil = typename LatticeModel::Stencil

◆ Velocity

template<typename LatticeModel , typename FlagFieldT >
using walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::Velocity = Vector3<real_t>

Constructor & Destructor Documentation

◆ DefaultBoundaryHandlingFactory()

template<typename LatticeModel , typename FlagFieldT >
walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::DefaultBoundaryHandlingFactory ( const BlockDataID flagField,
const BlockDataID pdfField,
const Set< FlagUID > &  flagUIDSet,
const Velocity  velocity0,
const Velocity  velocity1,
const real_t  pressure0,
const real_t  pressure1,
const typename BoundaryHandling::Mode  boundaryHandlingTraversalMode 
)
Parameters
flagFieldBlockDataID of the flag field used in the simulation
pdfFieldBlockDataID of the PDF field used in the simulation
velocity0Velocity parameter for SimpleUBB "Velocity0"
velocity1Velocity parameter for SimpleUBB "Velocity1"
pressure0Pressure parameter for SimplePressure "Pressure0"
pressure1Pressure parameter for SimplePressure "Pressure1"

Member Function Documentation

◆ addBoundaryHandlingToStorage() [1/2]

template<typename LatticeModel , typename FlagFieldT >
static BlockDataID walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::addBoundaryHandlingToStorage ( const shared_ptr< StructuredBlockStorage > &  bs,
const std::string &  identifier,
BlockDataID  flagFieldID,
BlockDataID  pdfFieldID,
const Set< FlagUID > &  flagUIDSet,
const Vector3< real_t > &  velocity0,
const Vector3< real_t > &  velocity1,
const real_t  pressure0,
const real_t  pressure1 
)
inlinestatic

◆ addBoundaryHandlingToStorage() [2/2]

template<typename LatticeModel , typename FlagFieldT >
static BlockDataID walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::addBoundaryHandlingToStorage ( const shared_ptr< StructuredBlockStorage > &  bs,
const std::string &  identifier,
BlockDataID  flagFieldID,
BlockDataID  pdfFieldID,
const Set< FlagUID > &  flagUIDSet,
const Vector3< real_t > &  velocity0,
const Vector3< real_t > &  velocity1,
const real_t  pressure0,
const real_t  pressure1,
const typename BoundaryHandling::Mode  boundaryHandlingTraversalMode 
)
inlinestatic

◆ getFreeSlip()

template<typename LatticeModel , typename FlagFieldT >
static const walberla::FlagUID& walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::getFreeSlip ( )
inlinestatic

◆ getFreeSlipBoundaryUID()

template<typename LatticeModel , typename FlagFieldT >
static const walberla::BoundaryUID& walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::getFreeSlipBoundaryUID ( )
inlinestatic

◆ getNoSlip()

template<typename LatticeModel , typename FlagFieldT >
static const walberla::FlagUID& walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::getNoSlip ( )
inlinestatic

◆ getNoSlipBoundaryUID()

template<typename LatticeModel , typename FlagFieldT >
static const walberla::BoundaryUID& walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::getNoSlipBoundaryUID ( )
inlinestatic

◆ getPressure0()

template<typename LatticeModel , typename FlagFieldT >
static const walberla::FlagUID& walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::getPressure0 ( )
inlinestatic

◆ getPressure0BoundaryUID()

template<typename LatticeModel , typename FlagFieldT >
static const walberla::BoundaryUID& walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::getPressure0BoundaryUID ( )
inlinestatic

◆ getPressure1()

template<typename LatticeModel , typename FlagFieldT >
static const walberla::FlagUID& walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::getPressure1 ( )
inlinestatic

◆ getPressure1BoundaryUID()

template<typename LatticeModel , typename FlagFieldT >
static const walberla::BoundaryUID& walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::getPressure1BoundaryUID ( )
inlinestatic

◆ getVelocity0()

template<typename LatticeModel , typename FlagFieldT >
static const walberla::FlagUID& walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::getVelocity0 ( )
inlinestatic

◆ getVelocity0BoundaryUID()

template<typename LatticeModel , typename FlagFieldT >
static const walberla::BoundaryUID& walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::getVelocity0BoundaryUID ( )
inlinestatic

◆ getVelocity1()

template<typename LatticeModel , typename FlagFieldT >
static const walberla::FlagUID& walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::getVelocity1 ( )
inlinestatic

◆ getVelocity1BoundaryUID()

template<typename LatticeModel , typename FlagFieldT >
static const walberla::BoundaryUID& walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::getVelocity1BoundaryUID ( )
inlinestatic

◆ operator()()

template<typename LatticeModel , typename FlagFieldT >
DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::BoundaryHandling * walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::operator() ( walberla::IBlock *const  block,
const walberla::StructuredBlockStorage *const  storage 
) const

Member Data Documentation

◆ boundaryHandlingTraversalMode_

template<typename LatticeModel , typename FlagFieldT >
const BoundaryHandling::Mode walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::boundaryHandlingTraversalMode_
private

◆ flagField_

template<typename LatticeModel , typename FlagFieldT >
BlockDataID walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::flagField_
private

◆ flagUIDSet_

template<typename LatticeModel , typename FlagFieldT >
const Set< FlagUID > walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::flagUIDSet_
private

◆ pdfField_

template<typename LatticeModel , typename FlagFieldT >
BlockDataID walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::pdfField_
private

◆ pressure0_

template<typename LatticeModel , typename FlagFieldT >
real_t walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::pressure0_
private

◆ pressure1_

template<typename LatticeModel , typename FlagFieldT >
real_t walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::pressure1_
private

◆ velocity0_

template<typename LatticeModel , typename FlagFieldT >
Velocity walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::velocity0_
private

◆ velocity1_

template<typename LatticeModel , typename FlagFieldT >
Velocity walberla::lbm::DefaultBoundaryHandlingFactory< LatticeModel, FlagFieldT >::velocity1_
private

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