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

typedef lbm::ExtendedBoundaryHandlingFactory< LatticeModel_T, FlagField_T > Factory;
BlockDataID bid = Factory::addBoundaryHandlingToStorage( blocks, "boundary handling",
flagFieldId, pdfFieldId, setOfDomainFlags );

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 flagFieldID, 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 
)
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  flagFieldID,
BlockDataID  pdfFieldID,
const Set< FlagUID > &  flagUIDSet,
const typename BoundaryHandling::Mode  boundaryHandlingTraversalMode 
)
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: