walberla::lbm::D3Q27SRT Class Reference

#include <D3Q27SRT.h>

Public Types

enum  Type { ALL = 0, INNER = 1, OUTER = 2 }
 

Public Member Functions

 D3Q27SRT (const shared_ptr< StructuredBlockStorage > &blocks, BlockDataID pdfsID_, BlockDataID densityID_, BlockDataID velocityID_, double omega, const Cell &outerWidth=Cell(1, 1, 1))
 
 ~D3Q27SRT ()
 
std::function< void(IBlock *)> streamCollide ()
 
std::function< void(IBlock *)> streamCollide (Type type)
 
std::function< void(IBlock *)> streamCollide (Type type, const cell_idx_t ghost_layers)
 
void streamCollide (IBlock *block)
 
void streamCollide (IBlock *block, const cell_idx_t ghost_layers)
 
void streamCollideCellInterval (IBlock *block, const CellInterval &ci)
 
void streamCollideInner (IBlock *block)
 
void streamCollideOuter (IBlock *block)
 
std::function< void(IBlock *)> collide ()
 
std::function< void(IBlock *)> collide (Type type)
 
std::function< void(IBlock *)> collide (Type type, const cell_idx_t ghost_layers)
 
void collide (IBlock *block)
 
void collide (IBlock *block, const cell_idx_t ghost_layers)
 
void collideCellInterval (IBlock *block, const CellInterval &ci)
 
void collideInner (IBlock *block)
 
void collideOuter (IBlock *block)
 
std::function< void(IBlock *)> stream ()
 
std::function< void(IBlock *)> stream (Type type)
 
std::function< void(IBlock *)> stream (Type type, const cell_idx_t ghost_layers)
 
void stream (IBlock *block)
 
void stream (IBlock *block, const cell_idx_t ghost_layers)
 
void streamCellInterval (IBlock *block, const CellInterval &ci)
 
void streamInner (IBlock *block)
 
void streamOuter (IBlock *block)
 
std::function< void(IBlock *)> streamOnlyNoAdvancement ()
 
std::function< void(IBlock *)> streamOnlyNoAdvancement (Type type)
 
std::function< void(IBlock *)> streamOnlyNoAdvancement (Type type, const cell_idx_t ghost_layers)
 
void streamOnlyNoAdvancement (IBlock *block)
 
void streamOnlyNoAdvancement (IBlock *block, const cell_idx_t ghost_layers)
 
void streamOnlyNoAdvancementCellInterval (IBlock *block, const CellInterval &ci)
 
void streamOnlyNoAdvancementInner (IBlock *block)
 
void streamOnlyNoAdvancementOuter (IBlock *block)
 
std::function< void(IBlock *)> initialise ()
 
std::function< void(IBlock *)> initialise (Type type)
 
std::function< void(IBlock *)> initialise (Type type, const cell_idx_t ghost_layers)
 
void initialise (IBlock *block)
 
void initialise (IBlock *block, const cell_idx_t ghost_layers)
 
void initialiseCellInterval (IBlock *block, const CellInterval &ci)
 
void initialiseInner (IBlock *block)
 
void initialiseOuter (IBlock *block)
 
std::function< void(IBlock *)> calculateMacroscopicParameters ()
 
std::function< void(IBlock *)> calculateMacroscopicParameters (Type type)
 
std::function< void(IBlock *)> calculateMacroscopicParameters (Type type, const cell_idx_t ghost_layers)
 
void calculateMacroscopicParameters (IBlock *block)
 
void calculateMacroscopicParameters (IBlock *block, const cell_idx_t ghost_layers)
 
void calculateMacroscopicParametersCellInterval (IBlock *block, const CellInterval &ci)
 
void calculateMacroscopicParametersInner (IBlock *block)
 
void calculateMacroscopicParametersOuter (IBlock *block)
 

Static Public Member Functions

static void streamCollide (field::GhostLayerField< double, 27 > *pdfs, field::GhostLayerField< double, 27 > *pdfs_tmp, double omega, const cell_idx_t ghost_layers=0)
 
static void streamCollideCellInterval (field::GhostLayerField< double, 27 > *pdfs, field::GhostLayerField< double, 27 > *pdfs_tmp, double omega, const CellInterval &ci)
 
static void collide (field::GhostLayerField< double, 27 > *pdfs, double omega, const cell_idx_t ghost_layers=0)
 
static void collideCellInterval (field::GhostLayerField< double, 27 > *pdfs, double omega, const CellInterval &ci)
 
static void stream (field::GhostLayerField< double, 27 > *pdfs, field::GhostLayerField< double, 27 > *pdfs_tmp, const cell_idx_t ghost_layers=0)
 
static void streamCellInterval (field::GhostLayerField< double, 27 > *pdfs, field::GhostLayerField< double, 27 > *pdfs_tmp, const CellInterval &ci)
 
static void streamOnlyNoAdvancement (field::GhostLayerField< double, 27 > *pdfs, field::GhostLayerField< double, 27 > *pdfs_tmp, const cell_idx_t ghost_layers=0)
 
static void streamOnlyNoAdvancementCellInterval (field::GhostLayerField< double, 27 > *pdfs, field::GhostLayerField< double, 27 > *pdfs_tmp, const CellInterval &ci)
 
static void initialise (field::GhostLayerField< double, 1 > *density, field::GhostLayerField< double, 27 > *pdfs, field::GhostLayerField< double, 3 > *velocity, const cell_idx_t ghost_layers=0)
 
static void initialiseCellInterval (field::GhostLayerField< double, 1 > *density, field::GhostLayerField< double, 27 > *pdfs, field::GhostLayerField< double, 3 > *velocity, const CellInterval &ci)
 
static void calculateMacroscopicParameters (field::GhostLayerField< double, 1 > *density, field::GhostLayerField< double, 27 > *pdfs, field::GhostLayerField< double, 3 > *velocity, const cell_idx_t ghost_layers=0)
 
static void calculateMacroscopicParametersCellInterval (field::GhostLayerField< double, 1 > *density, field::GhostLayerField< double, 27 > *pdfs, field::GhostLayerField< double, 3 > *velocity, const CellInterval &ci)
 

Private Attributes

shared_ptr< StructuredBlockStorageblocks_
 
BlockDataID pdfsID
 
BlockDataID densityID
 
BlockDataID velocityID
 
double omega_
 
std::set< field::GhostLayerField< double, 27 > *, field::SwapableCompare< field::GhostLayerField< double, 27 > * > > cache_pdfs_
 
Cell outerWidth_
 
std::vector< CellIntervallayers_
 

Member Enumeration Documentation

◆ Type

Enumerator
ALL 
INNER 
OUTER 

Constructor & Destructor Documentation

◆ D3Q27SRT()

walberla::lbm::D3Q27SRT::D3Q27SRT ( const shared_ptr< StructuredBlockStorage > &  blocks,
BlockDataID  pdfsID_,
BlockDataID  densityID_,
BlockDataID  velocityID_,
double  omega,
const Cell outerWidth = Cell(1, 1, 1) 
)
inline

◆ ~D3Q27SRT()

walberla::lbm::D3Q27SRT::~D3Q27SRT ( )
inline

Member Function Documentation

◆ calculateMacroscopicParameters() [1/6]

std::function<void (IBlock *)> walberla::lbm::D3Q27SRT::calculateMacroscopicParameters ( )
inline

◆ calculateMacroscopicParameters() [2/6]

void walberla::lbm::D3Q27SRT::calculateMacroscopicParameters ( field::GhostLayerField< double, 1 > *  density,
field::GhostLayerField< double, 27 > *  pdfs,
field::GhostLayerField< double, 3 > *  velocity,
const cell_idx_t  ghost_layers = 0 
)
static

◆ calculateMacroscopicParameters() [3/6]

void walberla::lbm::D3Q27SRT::calculateMacroscopicParameters ( IBlock block)
inline

◆ calculateMacroscopicParameters() [4/6]

void walberla::lbm::D3Q27SRT::calculateMacroscopicParameters ( IBlock block,
const cell_idx_t  ghost_layers 
)
inline

◆ calculateMacroscopicParameters() [5/6]

std::function<void (IBlock *)> walberla::lbm::D3Q27SRT::calculateMacroscopicParameters ( Type  type)
inline

◆ calculateMacroscopicParameters() [6/6]

std::function<void (IBlock *)> walberla::lbm::D3Q27SRT::calculateMacroscopicParameters ( Type  type,
const cell_idx_t  ghost_layers 
)
inline

◆ calculateMacroscopicParametersCellInterval() [1/2]

void walberla::lbm::D3Q27SRT::calculateMacroscopicParametersCellInterval ( field::GhostLayerField< double, 1 > *  density,
field::GhostLayerField< double, 27 > *  pdfs,
field::GhostLayerField< double, 3 > *  velocity,
const CellInterval ci 
)
static

◆ calculateMacroscopicParametersCellInterval() [2/2]

void walberla::lbm::D3Q27SRT::calculateMacroscopicParametersCellInterval ( IBlock block,
const CellInterval ci 
)
inline

◆ calculateMacroscopicParametersInner()

void walberla::lbm::D3Q27SRT::calculateMacroscopicParametersInner ( IBlock block)
inline

◆ calculateMacroscopicParametersOuter()

void walberla::lbm::D3Q27SRT::calculateMacroscopicParametersOuter ( IBlock block)
inline

◆ collide() [1/6]

std::function<void (IBlock *)> walberla::lbm::D3Q27SRT::collide ( )
inline

◆ collide() [2/6]

void walberla::lbm::D3Q27SRT::collide ( field::GhostLayerField< double, 27 > *  pdfs,
double  omega,
const cell_idx_t  ghost_layers = 0 
)
static

◆ collide() [3/6]

void walberla::lbm::D3Q27SRT::collide ( IBlock block)
inline

◆ collide() [4/6]

void walberla::lbm::D3Q27SRT::collide ( IBlock block,
const cell_idx_t  ghost_layers 
)
inline

◆ collide() [5/6]

std::function<void (IBlock *)> walberla::lbm::D3Q27SRT::collide ( Type  type)
inline

◆ collide() [6/6]

std::function<void (IBlock *)> walberla::lbm::D3Q27SRT::collide ( Type  type,
const cell_idx_t  ghost_layers 
)
inline

◆ collideCellInterval() [1/2]

void walberla::lbm::D3Q27SRT::collideCellInterval ( field::GhostLayerField< double, 27 > *  pdfs,
double  omega,
const CellInterval ci 
)
static

◆ collideCellInterval() [2/2]

void walberla::lbm::D3Q27SRT::collideCellInterval ( IBlock block,
const CellInterval ci 
)
inline

◆ collideInner()

void walberla::lbm::D3Q27SRT::collideInner ( IBlock block)
inline

◆ collideOuter()

void walberla::lbm::D3Q27SRT::collideOuter ( IBlock block)
inline

◆ initialise() [1/6]

std::function<void (IBlock *)> walberla::lbm::D3Q27SRT::initialise ( )
inline

◆ initialise() [2/6]

void walberla::lbm::D3Q27SRT::initialise ( field::GhostLayerField< double, 1 > *  density,
field::GhostLayerField< double, 27 > *  pdfs,
field::GhostLayerField< double, 3 > *  velocity,
const cell_idx_t  ghost_layers = 0 
)
static

◆ initialise() [3/6]

void walberla::lbm::D3Q27SRT::initialise ( IBlock block)
inline

◆ initialise() [4/6]

void walberla::lbm::D3Q27SRT::initialise ( IBlock block,
const cell_idx_t  ghost_layers 
)
inline

◆ initialise() [5/6]

std::function<void (IBlock *)> walberla::lbm::D3Q27SRT::initialise ( Type  type)
inline

◆ initialise() [6/6]

std::function<void (IBlock *)> walberla::lbm::D3Q27SRT::initialise ( Type  type,
const cell_idx_t  ghost_layers 
)
inline

◆ initialiseCellInterval() [1/2]

void walberla::lbm::D3Q27SRT::initialiseCellInterval ( field::GhostLayerField< double, 1 > *  density,
field::GhostLayerField< double, 27 > *  pdfs,
field::GhostLayerField< double, 3 > *  velocity,
const CellInterval ci 
)
static

◆ initialiseCellInterval() [2/2]

void walberla::lbm::D3Q27SRT::initialiseCellInterval ( IBlock block,
const CellInterval ci 
)
inline

◆ initialiseInner()

void walberla::lbm::D3Q27SRT::initialiseInner ( IBlock block)
inline

◆ initialiseOuter()

void walberla::lbm::D3Q27SRT::initialiseOuter ( IBlock block)
inline

◆ stream() [1/6]

std::function<void (IBlock *)> walberla::lbm::D3Q27SRT::stream ( )
inline

◆ stream() [2/6]

void walberla::lbm::D3Q27SRT::stream ( field::GhostLayerField< double, 27 > *  pdfs,
field::GhostLayerField< double, 27 > *  pdfs_tmp,
const cell_idx_t  ghost_layers = 0 
)
static

◆ stream() [3/6]

void walberla::lbm::D3Q27SRT::stream ( IBlock block)
inline

◆ stream() [4/6]

void walberla::lbm::D3Q27SRT::stream ( IBlock block,
const cell_idx_t  ghost_layers 
)
inline

◆ stream() [5/6]

std::function<void (IBlock *)> walberla::lbm::D3Q27SRT::stream ( Type  type)
inline

◆ stream() [6/6]

std::function<void (IBlock *)> walberla::lbm::D3Q27SRT::stream ( Type  type,
const cell_idx_t  ghost_layers 
)
inline

◆ streamCellInterval() [1/2]

void walberla::lbm::D3Q27SRT::streamCellInterval ( field::GhostLayerField< double, 27 > *  pdfs,
field::GhostLayerField< double, 27 > *  pdfs_tmp,
const CellInterval ci 
)
static

◆ streamCellInterval() [2/2]

void walberla::lbm::D3Q27SRT::streamCellInterval ( IBlock block,
const CellInterval ci 
)
inline

◆ streamCollide() [1/6]

std::function<void (IBlock *)> walberla::lbm::D3Q27SRT::streamCollide ( )
inline

◆ streamCollide() [2/6]

void walberla::lbm::D3Q27SRT::streamCollide ( field::GhostLayerField< double, 27 > *  pdfs,
field::GhostLayerField< double, 27 > *  pdfs_tmp,
double  omega,
const cell_idx_t  ghost_layers = 0 
)
static

◆ streamCollide() [3/6]

void walberla::lbm::D3Q27SRT::streamCollide ( IBlock block)
inline

◆ streamCollide() [4/6]

void walberla::lbm::D3Q27SRT::streamCollide ( IBlock block,
const cell_idx_t  ghost_layers 
)
inline

◆ streamCollide() [5/6]

std::function<void (IBlock *)> walberla::lbm::D3Q27SRT::streamCollide ( Type  type)
inline

◆ streamCollide() [6/6]

std::function<void (IBlock *)> walberla::lbm::D3Q27SRT::streamCollide ( Type  type,
const cell_idx_t  ghost_layers 
)
inline

◆ streamCollideCellInterval() [1/2]

void walberla::lbm::D3Q27SRT::streamCollideCellInterval ( field::GhostLayerField< double, 27 > *  pdfs,
field::GhostLayerField< double, 27 > *  pdfs_tmp,
double  omega,
const CellInterval ci 
)
static

◆ streamCollideCellInterval() [2/2]

void walberla::lbm::D3Q27SRT::streamCollideCellInterval ( IBlock block,
const CellInterval ci 
)
inline

◆ streamCollideInner()

void walberla::lbm::D3Q27SRT::streamCollideInner ( IBlock block)
inline

◆ streamCollideOuter()

void walberla::lbm::D3Q27SRT::streamCollideOuter ( IBlock block)
inline

◆ streamInner()

void walberla::lbm::D3Q27SRT::streamInner ( IBlock block)
inline

◆ streamOnlyNoAdvancement() [1/6]

std::function<void (IBlock *)> walberla::lbm::D3Q27SRT::streamOnlyNoAdvancement ( )
inline

◆ streamOnlyNoAdvancement() [2/6]

void walberla::lbm::D3Q27SRT::streamOnlyNoAdvancement ( field::GhostLayerField< double, 27 > *  pdfs,
field::GhostLayerField< double, 27 > *  pdfs_tmp,
const cell_idx_t  ghost_layers = 0 
)
static

◆ streamOnlyNoAdvancement() [3/6]

void walberla::lbm::D3Q27SRT::streamOnlyNoAdvancement ( IBlock block)
inline

◆ streamOnlyNoAdvancement() [4/6]

void walberla::lbm::D3Q27SRT::streamOnlyNoAdvancement ( IBlock block,
const cell_idx_t  ghost_layers 
)
inline

◆ streamOnlyNoAdvancement() [5/6]

std::function<void (IBlock *)> walberla::lbm::D3Q27SRT::streamOnlyNoAdvancement ( Type  type)
inline

◆ streamOnlyNoAdvancement() [6/6]

std::function<void (IBlock *)> walberla::lbm::D3Q27SRT::streamOnlyNoAdvancement ( Type  type,
const cell_idx_t  ghost_layers 
)
inline

◆ streamOnlyNoAdvancementCellInterval() [1/2]

void walberla::lbm::D3Q27SRT::streamOnlyNoAdvancementCellInterval ( field::GhostLayerField< double, 27 > *  pdfs,
field::GhostLayerField< double, 27 > *  pdfs_tmp,
const CellInterval ci 
)
static

◆ streamOnlyNoAdvancementCellInterval() [2/2]

void walberla::lbm::D3Q27SRT::streamOnlyNoAdvancementCellInterval ( IBlock block,
const CellInterval ci 
)
inline

◆ streamOnlyNoAdvancementInner()

void walberla::lbm::D3Q27SRT::streamOnlyNoAdvancementInner ( IBlock block)
inline

◆ streamOnlyNoAdvancementOuter()

void walberla::lbm::D3Q27SRT::streamOnlyNoAdvancementOuter ( IBlock block)
inline

◆ streamOuter()

void walberla::lbm::D3Q27SRT::streamOuter ( IBlock block)
inline

Member Data Documentation

◆ blocks_

shared_ptr< StructuredBlockStorage > walberla::lbm::D3Q27SRT::blocks_
private

◆ cache_pdfs_

std::set< field::GhostLayerField<double, 27> *, field::SwapableCompare< field::GhostLayerField<double, 27> * > > walberla::lbm::D3Q27SRT::cache_pdfs_
private

◆ densityID

BlockDataID walberla::lbm::D3Q27SRT::densityID
private

◆ layers_

std::vector<CellInterval> walberla::lbm::D3Q27SRT::layers_
private

◆ omega_

double walberla::lbm::D3Q27SRT::omega_
private

◆ outerWidth_

Cell walberla::lbm::D3Q27SRT::outerWidth_
private

◆ pdfsID

BlockDataID walberla::lbm::D3Q27SRT::pdfsID
private

◆ velocityID

BlockDataID walberla::lbm::D3Q27SRT::velocityID
private

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