waLBerla 7.2
Loading...
Searching...
No Matches
walberla::lbm::ExtendedBoundaryHandlingFactory< LatticeModel, FlagFieldT > Class Template Reference

Detailed Description

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

Creates a default boundary handling for LBM simulations.

This functor is usually used like

BlockDataID bid = Factory::addBoundaryHandlingToStorage( blocks, "boundary handling",
flagFieldId, pdfFieldId, setOfDomainFlags );
Creates a default boundary handling for LBM simulations.
Definition ExtendedBoundaryHandlingFactory.h:73

Use this boundary handling if the DefaultBoundaryHandling is not flexible enough for you. This boundary handling stores boundary velocities/pressure for each cell separately resulting in a memory consumption of 4 real values per cell. The Handling itself is also more costly since these values have to be loaded from memory.

The following boundary conditions are available:

Template Parameters
LatticeModelThe lattice model used for the simulation
FlagFieldTType of the used flag field

#include <ExtendedBoundaryHandlingFactory.h>

Public Types

using flag_t = typename FlagFieldT::flag_t
 
using Stencil = typename LatticeModel::Stencil
 
using Velocity = Vector3<real_t>
 
using PdfFieldLM = PdfField<LatticeModel>
 
using BcNoSlip = NoSlip<LatticeModel, flag_t>
 
using BcFreeSlip = FreeSlip<LatticeModel, FlagFieldT>
 
using BcPressure = Pressure<LatticeModel, flag_t>
 
using BcUBB = ParserUBB<LatticeModel, flag_t>
 
using BcOutlet = Outlet<LatticeModel, FlagFieldT>
 
using BcCurved = Curved<LatticeModel, FlagFieldT>
 
using BoundaryHandling = walberla::boundary::BoundaryHandling<FlagFieldT, Stencil, BcNoSlip, BcFreeSlip, BcPressure, BcUBB, BcOutlet, BcCurved>
 

Public Member Functions

 ExtendedBoundaryHandlingFactory (const BlockDataID &flagField, const BlockDataID &pdfField, const Set< FlagUID > &flagUIDSet, 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, BlockDataID pdfFieldID, const Set< FlagUID > &flagUIDSet)
 
static BlockDataID addBoundaryHandlingToStorage (const shared_ptr< StructuredBlockStorage > &bs, const std::string &identifier, BlockDataID flagFieldID, BlockDataID pdfFieldID, const Set< FlagUID > &flagUIDSet, const typename BoundaryHandling::Mode boundaryHandlingTraversalMode)
 
static const walberla::FlagUID & getNoSlip ()
 
static const walberla::FlagUID & getFreeSlip ()
 
static const walberla::FlagUID & getPressure ()
 
static const walberla::FlagUID & getUBB ()
 
static const walberla::FlagUID & getOutlet ()
 
static const walberla::FlagUID & getCurved ()
 
static const walberla::BoundaryUID & getNoSlipBoundaryUID ()
 
static const walberla::BoundaryUID & getFreeSlipBoundaryUID ()
 
static const walberla::BoundaryUID & getPressureBoundaryUID ()
 
static const walberla::BoundaryUID & getUBBBoundaryUID ()
 
static const walberla::BoundaryUID & getOutletBoundaryUID ()
 
static const walberla::BoundaryUID & getCurvedBoundaryUID ()
 

Private Attributes

BlockDataID flagField_
 
BlockDataID pdfField_
 
const Set< FlagUID > flagUIDSet_
 
const BoundaryHandling::Mode boundaryHandlingTraversalMode_
 

Member Typedef Documentation

◆ BcCurved

template<typename LatticeModel , typename FlagFieldT >
using walberla::lbm::ExtendedBoundaryHandlingFactory< LatticeModel, FlagFieldT >::BcCurved = Curved<LatticeModel, FlagFieldT>

◆ BcFreeSlip

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

◆ BcNoSlip

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

◆ BcOutlet

template<typename LatticeModel , typename FlagFieldT >
using walberla::lbm::ExtendedBoundaryHandlingFactory< LatticeModel, FlagFieldT >::BcOutlet = Outlet<LatticeModel, FlagFieldT>

◆ BcPressure

template<typename LatticeModel , typename FlagFieldT >
using walberla::lbm::ExtendedBoundaryHandlingFactory< LatticeModel, FlagFieldT >::BcPressure = Pressure<LatticeModel, flag_t>

◆ BcUBB

template<typename LatticeModel , typename FlagFieldT >
using walberla::lbm::ExtendedBoundaryHandlingFactory< LatticeModel, FlagFieldT >::BcUBB = ParserUBB<LatticeModel, flag_t>

◆ BoundaryHandling

template<typename LatticeModel , typename FlagFieldT >
using walberla::lbm::ExtendedBoundaryHandlingFactory< LatticeModel, FlagFieldT >::BoundaryHandling = walberla::boundary::BoundaryHandling<FlagFieldT, Stencil, BcNoSlip, BcFreeSlip, BcPressure, BcUBB, BcOutlet, BcCurved>

◆ flag_t

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

◆ PdfFieldLM

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

◆ Stencil

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

◆ Velocity

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

Constructor & Destructor Documentation

◆ ExtendedBoundaryHandlingFactory()

template<typename LatticeModel , typename FlagFieldT >
walberla::lbm::ExtendedBoundaryHandlingFactory< LatticeModel, FlagFieldT >::ExtendedBoundaryHandlingFactory ( const BlockDataID & flagField,
const BlockDataID & pdfField,
const Set< FlagUID > & flagUIDSet,
const typename BoundaryHandling::Mode boundaryHandlingTraversalMode )
Parameters
flagFieldBlockDataID of the flag field used in the simulation
pdfFieldBlockDataID of the PDF field used in the simulation

Member Function Documentation

◆ addBoundaryHandlingToStorage() [1/2]

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

◆ addBoundaryHandlingToStorage() [2/2]

template<typename LatticeModel , typename FlagFieldT >
static BlockDataID walberla::lbm::ExtendedBoundaryHandlingFactory< LatticeModel, FlagFieldT >::addBoundaryHandlingToStorage ( const shared_ptr< StructuredBlockStorage > & bs,
const std::string & identifier,
BlockDataID ,
BlockDataID pdfFieldID,
const Set< FlagUID > & flagUIDSet )
inlinestatic

◆ getCurved()

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

◆ getCurvedBoundaryUID()

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

◆ getFreeSlip()

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

◆ getFreeSlipBoundaryUID()

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

◆ getNoSlip()

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

◆ getNoSlipBoundaryUID()

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

◆ getOutlet()

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

◆ getOutletBoundaryUID()

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

◆ getPressure()

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

◆ getPressureBoundaryUID()

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

◆ getUBB()

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

◆ getUBBBoundaryUID()

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

◆ operator()()

template<typename LatticeModel , typename FlagFieldT >
ExtendedBoundaryHandlingFactory< LatticeModel, FlagFieldT >::BoundaryHandling * walberla::lbm::ExtendedBoundaryHandlingFactory< 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::ExtendedBoundaryHandlingFactory< LatticeModel, FlagFieldT >::boundaryHandlingTraversalMode_
private

◆ flagField_

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

◆ flagUIDSet_

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

◆ pdfField_

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

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