OpenLB 1.7
|
Platform-abstracted block lattice for external access and inter-block interaction. More...
#include <blockLattice.h>
Public Member Functions | |
BlockLattice (Vector< int, DESCRIPTOR::d > size, int padding, Platform platform) | |
virtual | ~BlockLattice () |
virtual void | collide ()=0 |
Execute the collide step on the non-overlapping block cells. | |
virtual void | stream ()=0 |
Apply the streaming step to the entire block. | |
virtual void | setProcessingContext (ProcessingContext)=0 |
Set processing context. | |
virtual Vector< T *, DESCRIPTOR::q > | getPopulationPointers (CellID iCell)=0 |
Returns pointers to host-side population locations of iCell. | |
Platform | getPlatform () const |
Return platform used to process lattice. | |
template<typename FIELD_TYPE > | |
bool | hasData () |
Return whether FIELD_TYPE is available / has been allocated. | |
template<typename FIELD_TYPE > | |
const auto & | getData (FIELD_TYPE field=FIELD_TYPE{}) const |
Return abstract interface for concrete FIELD_TYPE data. | |
template<typename FIELD_TYPE > | |
auto & | getData (FIELD_TYPE field=FIELD_TYPE{}) |
Return abstract interface for concrete FIELD_TYPE data. | |
template<typename FIELD > | |
const auto & | getField (FIELD field=FIELD{}) const |
Return abstract interface for FIELD array. | |
template<typename FIELD > | |
auto & | getField (FIELD field=FIELD{}) |
Return abstract interface for FIELD array. | |
Cell< T, DESCRIPTOR > | get (CellID iCell) |
Get Cell interface for index iCell. | |
ConstCell< T, DESCRIPTOR > | get (CellID iCell) const |
Get ConstCell interface for index iCell. | |
Cell< T, DESCRIPTOR > | get (LatticeR< DESCRIPTOR::d > loc) |
Get Cell interface for location loc. | |
ConstCell< T, DESCRIPTOR > | get (LatticeR< DESCRIPTOR::d > loc) const |
Get ConstCell interface for location loc. | |
template<typename... R> | |
std::enable_if_t< sizeof...(R)==DESCRIPTOR::d, Cell< T, DESCRIPTOR > > | get (R... latticeR) |
Get Cell interface for componentwise location latticeR. | |
template<typename... R> | |
std::enable_if_t< sizeof...(R)==DESCRIPTOR::d, ConstCell< T, DESCRIPTOR > > | get (R... latticeR) const |
Get ConstCell interface for componentwise location latticeR. | |
void | initialize () |
Initialize the lattice cells to become ready for simulation. | |
bool | statisticsEnabled () const |
void | setStatisticsEnabled (bool state) |
virtual void | setDynamics (CellID iCell, DynamicsPromise< T, DESCRIPTOR > &&)=0 |
Set dynamics at iCell to promised dynamics. | |
virtual void | setDynamics (CellID iCell, Dynamics< T, DESCRIPTOR > *)=0 |
virtual Dynamics< T, DESCRIPTOR > * | getDynamics (DynamicsPromise< T, DESCRIPTOR > &&)=0 |
Return pointer to dynamics yielded by promise. | |
template<typename DYNAMICS > | |
Dynamics< T, DESCRIPTOR > * | getDynamics () |
Return pointer to DYNAMICS (legacy) | |
virtual Dynamics< T, DESCRIPTOR > * | getDynamics (CellID iCell)=0 |
Return pointer to dynamics at iCell. | |
template<typename... R> | |
std::enable_if_t< sizeof...(R)==DESCRIPTOR::d, Dynamics< T, DESCRIPTOR > * > | getDynamics (R... latticeR) |
Return pointer to dynamics assigned to latticeR. | |
void | defineDynamics (LatticeR< DESCRIPTOR::d > latticeR, DynamicsPromise< T, DESCRIPTOR > &&promise) |
Assign promised DYNAMICS to latticeR. | |
template<template< typename, typename > typename DYNAMICS> | |
void | defineDynamics (LatticeR< DESCRIPTOR::d > latticeR) |
Assign DYNAMICS to latticeR. | |
void | defineDynamics (LatticeR< DESCRIPTOR::d > latticeR, Dynamics< T, DESCRIPTOR > *dynamics) |
Assign dynamics to latticeR via pointer (legacy) | |
void | defineDynamics (BlockIndicatorF< T, DESCRIPTOR::d > &indicator, Dynamics< T, DESCRIPTOR > *dynamics) |
Define the dynamics on a domain described by an indicator. | |
template<typename DYNAMICS > | |
void | defineDynamics (BlockIndicatorF< T, DESCRIPTOR::d > &indicator) |
Define DYNAMICS on a domain described by an indicator. | |
void | defineDynamics (Dynamics< T, DESCRIPTOR > *dynamics) |
Define the same dynamics on all cells. | |
template<typename FIELD > | |
void | setParameter (FieldD< T, DESCRIPTOR, FIELD > value) |
Set value of parameter FIELD for any dynamics that provide it. | |
template<typename PARAMETER , typename FIELD > | |
void | setParameter (AbstractFieldArrayD< T, DESCRIPTOR, FIELD > &fieldArray) |
template<typename PARAMETER , Platform PLATFORM, typename FIELD > | |
void | setParameter (FieldArrayD< T, DESCRIPTOR, PLATFORM, FIELD > &fieldArray) |
virtual bool | hasPostProcessor (std::type_index stage, PostProcessorPromise< T, DESCRIPTOR > &&promise)=0 |
Returns true if stage contains post processor. | |
virtual void | addPostProcessor (std::type_index stage, LatticeR< DESCRIPTOR::d > latticeR, PostProcessorPromise< T, DESCRIPTOR > &&promise)=0 |
Schedule post processor for application to latticeR in stage. | |
virtual void | addPostProcessor (std::type_index stage, PostProcessorPromise< T, DESCRIPTOR > &&promise)=0 |
Schedule post processor for application to entire block in stage. | |
virtual void | addPostProcessor (std::type_index stage, BlockIndicatorF< T, DESCRIPTOR::d > &indicator, PostProcessorPromise< T, DESCRIPTOR > &&promise)=0 |
Schedule post processor for application to indicated cells in stage. | |
virtual void | addPostProcessor (std::type_index stage, PostProcessor< T, DESCRIPTOR > *postProcessor)=0 |
Schedule legacy post processor for application in stage. | |
virtual void | addPostProcessor (std::type_index stage, const PostProcessorGenerator< T, DESCRIPTOR > &ppGen)=0 |
Schedule legacy post processor in stage. | |
virtual void | addPostProcessor (std::type_index stage, BlockIndicatorF< T, DESCRIPTOR::d > &indicator, const PostProcessorGenerator< T, DESCRIPTOR > &ppGen)=0 |
Schedule legacy post processor for application to indicated cells in stage. | |
template<typename STAGE = stage::PostStream> | |
void | addPostProcessor (PostProcessor< T, DESCRIPTOR > *postProcessor) |
Schedule legacy post processor for application in STAGE. | |
template<typename STAGE = stage::PostStream> | |
void | addPostProcessor (const PostProcessorGenerator< T, DESCRIPTOR > &ppGen) |
Schedule legacy post processor for application in STAGE. | |
template<typename STAGE = stage::PostStream> | |
void | addPostProcessor (BlockIndicatorF< T, DESCRIPTOR::d > &indicator, const PostProcessorGenerator< T, DESCRIPTOR > &ppGen) |
Schedule legacy post processor for application to indicated cells in STAGE. | |
virtual void | postProcess (std::type_index stage=typeid(stage::PostStream))=0 |
Execute post processors of stage. | |
template<typename STAGE > | |
void | postProcess () |
Execute post processors of STAGE. | |
virtual bool | hasCommunicatable (std::type_index) const =0 |
virtual Communicatable & | getCommunicatable (std::type_index)=0 |
template<typename FIELD > | |
void | defineField (BlockIndicatorF< T, DESCRIPTOR::d > &indicator, AnalyticalF< DESCRIPTOR::d, T, T > &field) |
Define a field on a domain described by an indicator. | |
template<typename FIELD > | |
void | defineField (BlockIndicatorF< T, DESCRIPTOR::d > &indicator, BlockF< T, DESCRIPTOR::d > &field) |
Define a field on a domain described by an indicator. | |
template<typename FIELD > | |
void | defineField (BlockGeometry< T, DESCRIPTOR::d > &blockGeometry, IndicatorF< T, DESCRIPTOR::d > &indicatorF, AnalyticalF< DESCRIPTOR::d, T, T > &field) |
Define a field on a domain described by an analytical indicator. | |
void | defineRho (BlockIndicatorF< T, DESCRIPTOR::d > &indicator, AnalyticalF< DESCRIPTOR::d, T, T > &rho) |
Define rho on a domain described by an indicator. | |
void | defineU (BlockIndicatorF< T, DESCRIPTOR::d > &indicator, AnalyticalF< DESCRIPTOR::d, T, T > &u) |
Define u on a domain described by an indicator. | |
void | defineRhoU (BlockIndicatorF< T, DESCRIPTOR::d > &indicator, AnalyticalF< DESCRIPTOR::d, T, T > &rho, AnalyticalF< DESCRIPTOR::d, T, T > &u) |
Define rho and u on a domain described by an indicator. | |
void | definePopulations (BlockIndicatorF< T, DESCRIPTOR::d > &indicator, AnalyticalF< DESCRIPTOR::d, T, T > &Pop) |
Define a population on a domain described by an indicator. | |
void | definePopulations (BlockIndicatorF< T, DESCRIPTOR::d > &indicator, BlockF< T, DESCRIPTOR::d > &Pop) |
void | iniEquilibrium (BlockIndicatorF< T, DESCRIPTOR::d > &indicator, AnalyticalF< DESCRIPTOR::d, T, T > &rho, AnalyticalF< DESCRIPTOR::d, T, T > &u) |
Initialize by equilibrium on a domain described by an indicator. | |
void | iniEquilibrium (BlockIndicatorF< T, DESCRIPTOR::d > &indicator, AnalyticalF< DESCRIPTOR::d, T, T > &rho, BlockF< T, DESCRIPTOR::d > &u) |
void | iniRegularized (BlockIndicatorF< T, DESCRIPTOR::d > &indicator, AnalyticalF< DESCRIPTOR::d, T, T > &rho, AnalyticalF< DESCRIPTOR::d, T, T > &u, AnalyticalF< DESCRIPTOR::d, T, T > &pi) |
Initialize by non- and equilibrium on a domain described by an indicator. | |
void | stripeOffDensityOffset (T offset) |
Subtract the given offset from all densities. | |
void | addLatticeCoupling (LatticeCouplingGenerator< T, DESCRIPTOR > const &lcGen, std::vector< BlockStructureD< DESCRIPTOR::d > * > partners) |
Add a non-local post-processing step (legacy) | |
void | addLatticeCoupling (BlockIndicatorF< T, DESCRIPTOR::d > &indicator, LatticeCouplingGenerator< T, DESCRIPTOR > const &lcGen, std::vector< BlockStructureD< DESCRIPTOR::d > * > partners) |
void | executeCoupling () |
Execute couplings steps (legacy) | |
LatticeStatistics< T > & | getStatistics () |
Return a handle to the LatticeStatistics object. | |
LatticeStatistics< T > const & | getStatistics () const |
Return a constant handle to the LatticeStatistics object. | |
Public Member Functions inherited from olb::BlockStructureD< D > | |
BlockStructureD (Vector< int, D > size, int padding=0) | |
BlockStructureD () | |
int | getNx () const |
Read only access to block width. | |
int | getNy () const |
Read only access to block height. | |
int | getNz () const |
Read only access to block height. | |
LatticeR< D > | getExtent () const |
int | getPadding () const |
Read only access to padding. | |
std::size_t | getNcells () const |
Get number of cells. | |
CellID | getCellId (LatticeR< D > latticeR) const |
Get 1D cell ID. | |
template<typename... L> | |
std::enable_if_t< sizeof...(L)==D, CellID > | getCellId (L... latticeR) const |
CellDistance | getNeighborDistance (LatticeR< D > dir) const |
Get 1D neighbor distance. | |
bool | isInside (LatticeR< D > latticeR) const |
Return whether location is valid. | |
bool | isInsideCore (LatticeR< D > latticeR) const |
Return whether location is inside core. | |
bool | isPadding (LatticeR< D > latticeR) const |
Return whether location is valid. | |
template<typename... L> | |
std::enable_if_t< sizeof...(L)==D, bool > | isInside (L... latticeR) const |
CellDistance | getNeighborhoodRadius (LatticeR< D > latticeR) const |
Return maximum valid neighborhood sphere radius w.r.t. latticeR. | |
template<typename F > | |
void | forSpatialLocations (F f) const |
template<typename F > | |
void | forSpatialLocationsParallel (F f) const |
template<typename F > | |
void | forSpatialLocations (LatticeR< D > min, LatticeR< D > max, F f) const |
template<typename F > | |
void | forCoreSpatialLocations (F f) const |
template<typename F > | |
void | forCellIndices (F f) const |
Public Member Functions inherited from olb::Serializable | |
virtual | ~Serializable ()=default |
virtual bool * | getBlock (const std::size_t iBlock, std::size_t &sizeBlock, const bool loadingMode=false)=0 |
Returns the address of the i-th block and its size. | |
virtual std::size_t | getNblock () const =0 |
Returns the number of blocks. | |
virtual std::size_t | getSerializableSize () const =0 |
Returns the binary size of the data to be saved. | |
template<bool includeLogOutputDir = true> | |
bool | save (std::string fileName="", const bool enforceUint=false) |
Save Serializable into file fileName | |
template<bool includeLogOutputDir = true> | |
bool | load (std::string fileName="", const bool enforceUint=false) |
Load Serializable from file fileName | |
bool | save (std::uint8_t *buffer) |
Save Serializable into buffer of length getSerializableSize | |
bool | load (const std::uint8_t *buffer) |
Load Serializable from buffer of length getSerializableSize | |
virtual void | postLoad () |
Protected Attributes | |
const Platform | _platform |
bool | _statisticsEnabled |
LatticeStatistics< T > * | _statistics |
Protected Attributes inherited from olb::BlockStructureD< D > | |
LatticeR< D > | _core |
LatticeR< D > | _size |
LatticeR< D > | _projection |
int | _padding |
Additional Inherited Members | |
Protected Member Functions inherited from olb::Serializable | |
template<typename DataType > | |
void | registerVar (const std::size_t iBlock, std::size_t &sizeBlock, std::size_t ¤tBlock, bool *&dataPtr, const DataType &data, const size_t arrayLength=1) const |
Register primitive data types (int , double , ...) or arrays of those. | |
template<typename DataType > | |
void | registerSerializableOfConstSize (const std::size_t iBlock, std::size_t &sizeBlock, std::size_t ¤tBlock, bool *&dataPtr, DataType &data, const bool loadingMode=false) |
Register Serializable object of constant size. | |
template<typename DataType > | |
void | registerSerializablesOfConstSize (const std::size_t iBlock, std::size_t &sizeBlock, std::size_t ¤tBlock, bool *&dataPtr, DataType *data, const size_t arrayLength, const bool loadingMode=false) |
Register an array of Serializable objects of constant size. | |
Platform-abstracted block lattice for external access and inter-block interaction.
Definition at line 86 of file blockLattice.h.
olb::BlockLattice< T, DESCRIPTOR >::BlockLattice | ( | Vector< int, DESCRIPTOR::d > | size, |
int | padding, | ||
Platform | platform ) |
Definition at line 35 of file blockLattice.hh.
|
virtual |
Definition at line 43 of file blockLattice.hh.
void olb::BlockLattice< T, DESCRIPTOR >::addLatticeCoupling | ( | BlockIndicatorF< T, DESCRIPTOR::d > & | indicator, |
LatticeCouplingGenerator< T, DESCRIPTOR > const & | lcGen, | ||
std::vector< BlockStructureD< DESCRIPTOR::d > * > | partners ) |
Definition at line 377 of file blockLattice.hh.
void olb::BlockLattice< T, DESCRIPTOR >::addLatticeCoupling | ( | LatticeCouplingGenerator< T, DESCRIPTOR > const & | lcGen, |
std::vector< BlockStructureD< DESCRIPTOR::d > * > | partners ) |
Add a non-local post-processing step (legacy)
Definition at line 370 of file blockLattice.hh.
|
inline |
Schedule legacy post processor for application to indicated cells in STAGE.
Definition at line 343 of file blockLattice.h.
References olb::BlockLattice< T, DESCRIPTOR >::addPostProcessor().
|
inline |
Schedule legacy post processor for application in STAGE.
Definition at line 338 of file blockLattice.h.
References olb::BlockLattice< T, DESCRIPTOR >::addPostProcessor().
|
inline |
Schedule legacy post processor for application in STAGE.
Definition at line 333 of file blockLattice.h.
References olb::BlockLattice< T, DESCRIPTOR >::addPostProcessor().
|
pure virtual |
Schedule legacy post processor for application to indicated cells in stage.
Implemented in olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA >, olb::ConcreteBlockLattice< T, DESCRIPTOR, SOURCE >, and olb::ConcreteBlockLattice< T, DESCRIPTOR, TARGET >.
|
pure virtual |
Schedule post processor for application to indicated cells in stage.
Implemented in olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA >, olb::ConcreteBlockLattice< T, DESCRIPTOR, SOURCE >, and olb::ConcreteBlockLattice< T, DESCRIPTOR, TARGET >.
|
pure virtual |
Schedule legacy post processor in stage.
Implemented in olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA >, olb::ConcreteBlockLattice< T, DESCRIPTOR, SOURCE >, and olb::ConcreteBlockLattice< T, DESCRIPTOR, TARGET >.
|
pure virtual |
Schedule post processor for application to latticeR in stage.
Implemented in olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA >, olb::ConcreteBlockLattice< T, DESCRIPTOR, SOURCE >, and olb::ConcreteBlockLattice< T, DESCRIPTOR, TARGET >.
|
pure virtual |
Schedule legacy post processor for application in stage.
Implemented in olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA >, olb::ConcreteBlockLattice< T, DESCRIPTOR, SOURCE >, and olb::ConcreteBlockLattice< T, DESCRIPTOR, TARGET >.
|
pure virtual |
Schedule post processor for application to entire block in stage.
Implemented in olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA >, olb::ConcreteBlockLattice< T, DESCRIPTOR, SOURCE >, and olb::ConcreteBlockLattice< T, DESCRIPTOR, TARGET >.
|
pure virtual |
Execute the collide step on the non-overlapping block cells.
Implemented in olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA >, olb::ConcreteBlockLattice< T, DESCRIPTOR, SOURCE >, and olb::ConcreteBlockLattice< T, DESCRIPTOR, TARGET >.
void olb::BlockLattice< T, DESCRIPTOR >::defineDynamics | ( | BlockIndicatorF< T, DESCRIPTOR::d > & | indicator | ) |
Define DYNAMICS on a domain described by an indicator.
Definition at line 272 of file blockLattice.hh.
References olb::DynamicsPromise().
void olb::BlockLattice< T, DESCRIPTOR >::defineDynamics | ( | BlockIndicatorF< T, DESCRIPTOR::d > & | indicator, |
Dynamics< T, DESCRIPTOR > * | dynamics ) |
Define the dynamics on a domain described by an indicator.
Definition at line 258 of file blockLattice.hh.
void olb::BlockLattice< T, DESCRIPTOR >::defineDynamics | ( | Dynamics< T, DESCRIPTOR > * | dynamics | ) |
Define the same dynamics on all cells.
Definition at line 285 of file blockLattice.hh.
|
inline |
Assign DYNAMICS to latticeR.
Definition at line 249 of file blockLattice.h.
References olb::DynamicsPromise(), olb::BlockStructureD< D >::getCellId(), and olb::BlockLattice< T, DESCRIPTOR >::setDynamics().
|
inline |
Assign dynamics to latticeR via pointer (legacy)
Definition at line 255 of file blockLattice.h.
References olb::BlockStructureD< D >::getCellId(), and olb::BlockLattice< T, DESCRIPTOR >::setDynamics().
|
inline |
Assign promised DYNAMICS to latticeR.
Definition at line 241 of file blockLattice.h.
References olb::BlockStructureD< D >::getCellId(), and olb::BlockLattice< T, DESCRIPTOR >::setDynamics().
void olb::BlockLattice< T, DESCRIPTOR >::defineField | ( | BlockGeometry< T, DESCRIPTOR::d > & | blockGeometry, |
IndicatorF< T, DESCRIPTOR::d > & | indicatorF, | ||
AnalyticalF< DESCRIPTOR::d, T, T > & | field ) |
Define a field on a domain described by an analytical indicator.
indicatorF | Domain indicator to be reduced to BlockIndicatorFfromIndicatorF3D |
Definition at line 186 of file blockLattice.hh.
void olb::BlockLattice< T, DESCRIPTOR >::defineField | ( | BlockIndicatorF< T, DESCRIPTOR::d > & | indicator, |
AnalyticalF< DESCRIPTOR::d, T, T > & | field ) |
Define a field on a domain described by an indicator.
indicator | Block indicator describing the target domain |
field | Analytical functor (global) |
Definition at line 151 of file blockLattice.hh.
void olb::BlockLattice< T, DESCRIPTOR >::defineField | ( | BlockIndicatorF< T, DESCRIPTOR::d > & | indicator, |
BlockF< T, DESCRIPTOR::d > & | field ) |
Define a field on a domain described by an indicator.
indicator | Block indicator describing the target domain |
field | Block functor |
Definition at line 170 of file blockLattice.hh.
References olb::Vector< T, D >::data().
void olb::BlockLattice< T, DESCRIPTOR >::definePopulations | ( | BlockIndicatorF< T, DESCRIPTOR::d > & | indicator, |
AnalyticalF< DESCRIPTOR::d, T, T > & | Pop ) |
Define a population on a domain described by an indicator.
indicator | Block indicator describing the target domain |
Pop | Analytical functor (global), target dimension DESCRIPTOR::q |
Definition at line 118 of file blockLattice.hh.
void olb::BlockLattice< T, DESCRIPTOR >::definePopulations | ( | BlockIndicatorF< T, DESCRIPTOR::d > & | indicator, |
BlockF< T, DESCRIPTOR::d > & | Pop ) |
indicator | Block indicator describing the target domain |
Pop | Block functor, target dimension DESCRIPTOR::q |
Definition at line 135 of file blockLattice.hh.
void olb::BlockLattice< T, DESCRIPTOR >::defineRho | ( | BlockIndicatorF< T, DESCRIPTOR::d > & | indicator, |
AnalyticalF< DESCRIPTOR::d, T, T > & | rho ) |
Define rho on a domain described by an indicator.
indicator | Block indicator describing the target domain |
rho | Analytical functor (global) |
Definition at line 64 of file blockLattice.hh.
void olb::BlockLattice< T, DESCRIPTOR >::defineRhoU | ( | BlockIndicatorF< T, DESCRIPTOR::d > & | indicator, |
AnalyticalF< DESCRIPTOR::d, T, T > & | rho, | ||
AnalyticalF< DESCRIPTOR::d, T, T > & | u ) |
Define rho and u on a domain described by an indicator.
indicator | Block indicator describing the target domain |
rho | Analytical functor (global) |
u | Analytical functor (global) |
Definition at line 98 of file blockLattice.hh.
void olb::BlockLattice< T, DESCRIPTOR >::defineU | ( | BlockIndicatorF< T, DESCRIPTOR::d > & | indicator, |
AnalyticalF< DESCRIPTOR::d, T, T > & | u ) |
Define u on a domain described by an indicator.
indicator | Block indicator describing the target domain |
u | Analytical functor (global) |
Definition at line 81 of file blockLattice.hh.
void olb::BlockLattice< T, DESCRIPTOR >::executeCoupling | ( | ) |
Execute couplings steps (legacy)
Definition at line 397 of file blockLattice.hh.
|
inline |
Get Cell interface for index iCell.
Definition at line 171 of file blockLattice.h.
|
inline |
Get ConstCell interface for index iCell.
Definition at line 176 of file blockLattice.h.
|
inline |
Get Cell interface for location loc.
Definition at line 182 of file blockLattice.h.
References olb::BlockLattice< T, DESCRIPTOR >::get(), and olb::BlockStructureD< D >::getCellId().
|
inline |
Get ConstCell interface for location loc.
Definition at line 187 of file blockLattice.h.
References olb::BlockLattice< T, DESCRIPTOR >::get(), and olb::BlockStructureD< D >::getCellId().
|
inline |
Get Cell interface for componentwise location latticeR.
Definition at line 195 of file blockLattice.h.
References olb::BlockLattice< T, DESCRIPTOR >::get(), and olb::BlockStructureD< D >::getCellId().
|
inline |
Get ConstCell interface for componentwise location latticeR.
Definition at line 202 of file blockLattice.h.
References olb::BlockLattice< T, DESCRIPTOR >::get(), and olb::BlockStructureD< D >::getCellId().
|
pure virtual |
Implemented in olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA >, olb::ConcreteBlockLattice< T, DESCRIPTOR, SOURCE >, and olb::ConcreteBlockLattice< T, DESCRIPTOR, TARGET >.
|
inline |
Return abstract interface for concrete FIELD_TYPE data.
Definition at line 146 of file blockLattice.h.
|
inline |
Return abstract interface for concrete FIELD_TYPE data.
Definition at line 134 of file blockLattice.h.
|
inline |
Return pointer to DYNAMICS (legacy)
Definition at line 226 of file blockLattice.h.
References olb::DynamicsPromise(), and olb::BlockLattice< T, DESCRIPTOR >::getDynamics().
|
pure virtual |
Return pointer to dynamics at iCell.
Implemented in olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA >, olb::ConcreteBlockLattice< T, DESCRIPTOR, SOURCE >, and olb::ConcreteBlockLattice< T, DESCRIPTOR, TARGET >.
|
pure virtual |
Return pointer to dynamics yielded by promise.
Implemented in olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA >, olb::ConcreteBlockLattice< T, DESCRIPTOR, SOURCE >, and olb::ConcreteBlockLattice< T, DESCRIPTOR, TARGET >.
|
inline |
Return pointer to dynamics assigned to latticeR.
Definition at line 235 of file blockLattice.h.
References olb::BlockStructureD< D >::getCellId(), and olb::BlockLattice< T, DESCRIPTOR >::getDynamics().
|
inline |
Return abstract interface for FIELD array.
Definition at line 165 of file blockLattice.h.
|
inline |
Return abstract interface for FIELD array.
Definition at line 158 of file blockLattice.h.
|
inline |
Return platform used to process lattice.
Definition at line 117 of file blockLattice.h.
References olb::BlockLattice< T, DESCRIPTOR >::_platform.
|
pure virtual |
Returns pointers to host-side population locations of iCell.
Used only for high-level olb::(Const)Cell interface
Implemented in olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA >, olb::ConcreteBlockLattice< T, DESCRIPTOR, SOURCE >, and olb::ConcreteBlockLattice< T, DESCRIPTOR, TARGET >.
LatticeStatistics< T > & olb::BlockLattice< T, DESCRIPTOR >::getStatistics | ( | ) |
Return a handle to the LatticeStatistics object.
Definition at line 403 of file blockLattice.hh.
const LatticeStatistics< T > & olb::BlockLattice< T, DESCRIPTOR >::getStatistics | ( | ) | const |
Return a constant handle to the LatticeStatistics object.
Definition at line 409 of file blockLattice.hh.
|
pure virtual |
Implemented in olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA >, olb::ConcreteBlockLattice< T, DESCRIPTOR, SOURCE >, and olb::ConcreteBlockLattice< T, DESCRIPTOR, TARGET >.
|
inline |
Return whether FIELD_TYPE is available / has been allocated.
Definition at line 123 of file blockLattice.h.
References olb::BlockLattice< T, DESCRIPTOR >::_platform.
|
pure virtual |
Returns true if stage contains post processor.
Implemented in olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA >, olb::ConcreteBlockLattice< T, DESCRIPTOR, SOURCE >, and olb::ConcreteBlockLattice< T, DESCRIPTOR, TARGET >.
void olb::BlockLattice< T, DESCRIPTOR >::iniEquilibrium | ( | BlockIndicatorF< T, DESCRIPTOR::d > & | indicator, |
AnalyticalF< DESCRIPTOR::d, T, T > & | rho, | ||
AnalyticalF< DESCRIPTOR::d, T, T > & | u ) |
Initialize by equilibrium on a domain described by an indicator.
indicator | Block indicator describing the target domain |
rho | Analytical functor (global) |
u | Analytical functor (global) |
Definition at line 195 of file blockLattice.hh.
void olb::BlockLattice< T, DESCRIPTOR >::iniEquilibrium | ( | BlockIndicatorF< T, DESCRIPTOR::d > & | indicator, |
AnalyticalF< DESCRIPTOR::d, T, T > & | rho, | ||
BlockF< T, DESCRIPTOR::d > & | u ) |
Definition at line 215 of file blockLattice.hh.
References olb::Vector< T, D >::data().
void olb::BlockLattice< T, DESCRIPTOR >::iniRegularized | ( | BlockIndicatorF< T, DESCRIPTOR::d > & | indicator, |
AnalyticalF< DESCRIPTOR::d, T, T > & | rho, | ||
AnalyticalF< DESCRIPTOR::d, T, T > & | u, | ||
AnalyticalF< DESCRIPTOR::d, T, T > & | pi ) |
Initialize by non- and equilibrium on a domain described by an indicator.
indicator | Block indicator describing the target domain |
rho | Analytical functor (global) |
u | Analytical functor (global) |
Definition at line 235 of file blockLattice.hh.
void olb::BlockLattice< T, DESCRIPTOR >::initialize | ( | ) |
Initialize the lattice cells to become ready for simulation.
Definition at line 51 of file blockLattice.hh.
References olb::LatticeStatistics< T >::initialize(), and olb::Simulation.
|
inline |
Execute post processors of STAGE.
Definition at line 352 of file blockLattice.h.
References olb::BlockLattice< T, DESCRIPTOR >::postProcess().
|
pure virtual |
Execute post processors of stage.
Implemented in olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA >, olb::ConcreteBlockLattice< T, DESCRIPTOR, SOURCE >, and olb::ConcreteBlockLattice< T, DESCRIPTOR, TARGET >.
|
pure virtual |
Implemented in olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA >, olb::ConcreteBlockLattice< T, DESCRIPTOR, SOURCE >, and olb::ConcreteBlockLattice< T, DESCRIPTOR, TARGET >.
|
pure virtual |
Set dynamics at iCell to promised dynamics.
Implemented in olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA >, olb::ConcreteBlockLattice< T, DESCRIPTOR, SOURCE >, and olb::ConcreteBlockLattice< T, DESCRIPTOR, TARGET >.
|
inline |
Definition at line 289 of file blockLattice.h.
References olb::BlockLattice< T, DESCRIPTOR >::_platform.
|
inline |
Definition at line 298 of file blockLattice.h.
References olb::BlockLattice< T, DESCRIPTOR >::_platform.
|
inline |
Set value of parameter FIELD for any dynamics that provide it.
Most common way of defining parameters. E.g. to set the relaxation time descriptors::OMEGA
for all dynamics to 0.6
:
Definition at line 279 of file blockLattice.h.
References olb::BlockLattice< T, DESCRIPTOR >::_platform.
|
pure virtual |
Set processing context.
This is currently used to trigger data transfers between host and GPU data for Platform::GPU_CUDA.
Implemented in olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA >, olb::ConcreteBlockLattice< T, DESCRIPTOR, SOURCE >, and olb::ConcreteBlockLattice< T, DESCRIPTOR, TARGET >.
|
inline |
Definition at line 213 of file blockLattice.h.
References olb::BlockLattice< T, DESCRIPTOR >::_statisticsEnabled.
|
inline |
Definition at line 210 of file blockLattice.h.
References olb::BlockLattice< T, DESCRIPTOR >::_statisticsEnabled.
|
pure virtual |
Apply the streaming step to the entire block.
Implemented in olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD >, olb::ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA >, olb::ConcreteBlockLattice< T, DESCRIPTOR, SOURCE >, and olb::ConcreteBlockLattice< T, DESCRIPTOR, TARGET >.
void olb::BlockLattice< T, DESCRIPTOR >::stripeOffDensityOffset | ( | T | offset | ) |
Subtract the given offset from all densities.
Definition at line 356 of file blockLattice.hh.
|
protected |
Definition at line 89 of file blockLattice.h.
|
protected |
Definition at line 92 of file blockLattice.h.
|
protected |
Definition at line 91 of file blockLattice.h.