walberla::lbm::PdfField< LatticeModel_T > Class Template Reference

Detailed Description

template<typename LatticeModel_T>
class walberla::lbm::PdfField< LatticeModel_T >

Specialized field class for PDF fields (fields containing multiple particle distribution functions per cell)

In addition to a generic GhostLayerField, each PdfField contains a lattice model which - among other things - determines how macroscopic values like density and velocity have to be calculated. For this purpose, a set of member functions exist that can be used to set single cells (or the whole field) to equilibrium or to evaluate the density and/or velocity for specific positions. If you happen to have an iterator to a PdfField, you should use the free functions located in "MacroscopicValueCalculation.h" - you do not have to convert your iterator into x-, y-, and z-coordinates! Also, particle distribution functions (i.e., the values stored in the field) can be accessed using stencil directions, e.g. "pdfField( x, y, z, stencil::NE )".

Note that the behavior is different for compressible and incompressible lattice models. In the compressible case, the behavior and formulas are as expected from common LBM literature and the density is taken as the 0-th order moment of the PDFs and this value is used. In order to make LBM quasi-incompressible, it was suggested, e.g. in Q. Zou, S. Hou, S. Chen, G.D. Doolen, J. Stat. Phys. 81(1–2), 35 (1995) X. He, L.S. Luo, J. Stat. Phys. 88(3–4), 927 (1997) that the density is implicitly assumed to have a constant value of 1 in many cases (e.g. in getVelocity()), and only the deviation from this value enters some of the formulas, like the equilibrium distribution functions. Additionally, the PDFs are normalized around 0 in the incompressible case to increase the numerical accuracy, i.e. only the deviation of the PDF values from their respective lattice weight is stored. As a result, manually summing of the PDF values will yield the density deviation in this case. But the getDensity() function reverts this normalization (by adding 1) and will yield the physical density. This normalization, however, usually doesn't affect the implementation of functions like LBM sweeps.

#include <PdfField.h>

+ Inheritance diagram for walberla::lbm::PdfField< LatticeModel_T >:

Type Definitions

using LatticeModel = LatticeModel_T
 
using Stencil = typename LatticeModel_T::Stencil
 
using value_type = typename GhostLayerField< real_t, Stencil::Size >::value_type
 
using iterator = typename GhostLayerField< real_t, Stencil::Size >::iterator
 
using const_iterator = typename GhostLayerField< real_t, Stencil::Size >::const_iterator
 
using reverse_iterator = typename GhostLayerField< real_t, Stencil::Size >::reverse_iterator
 
using const_reverse_iterator = typename GhostLayerField< real_t, Stencil::Size >::const_reverse_iterator
 
using base_iterator = typename GhostLayerField< real_t, Stencil::Size >::base_iterator
 
using const_base_iterator = typename GhostLayerField< real_t, Stencil::Size >::const_base_iterator
 
using Ptr = typename GhostLayerField< real_t, Stencil::Size >::Ptr
 
using ConstPtr = typename GhostLayerField< real_t, Stencil::Size >::ConstPtr
 
 PdfField (const uint_t _xSize, const uint_t _ySize, const uint_t _zSize, const LatticeModel_T &_latticeModel, const bool initialize=true, const Vector3< real_t > &initialVelocity=Vector3< real_t >(real_t(0.0)), const real_t initialDensity=real_t(1.0), const uint_t ghostLayers=uint_t(1), const field::Layout &_layout=field::fzyx, const shared_ptr< field::FieldAllocator< real_t > > &alloc=shared_ptr< field::FieldAllocator< real_t > >())
 
 ~PdfField () override=default
 
PdfFieldclone () const
 
PdfFieldcloneUninitialized () const
 
PdfFieldcloneShallowCopy () const
 
const LatticeModel_TlatticeModel () const
 
LatticeModel_TlatticeModel ()
 
void resetLatticeModel (const LatticeModel_T &lm)
 
real_tget (cell_idx_t x, cell_idx_t y, cell_idx_t z, stencil::Direction d)
 
const real_tget (cell_idx_t x, cell_idx_t y, cell_idx_t z, stencil::Direction d) const
 
real_tget (const Cell &c, stencil::Direction d)
 
const real_tget (const Cell &c, stencil::Direction d) const
 
real_toperator() (cell_idx_t x, cell_idx_t y, cell_idx_t z, stencil::Direction d)
 
const real_toperator() (cell_idx_t x, cell_idx_t y, cell_idx_t z, stencil::Direction d) const
 
real_toperator() (const Cell &c, stencil::Direction d)
 
const real_toperator() (const Cell &c, stencil::Direction d) const
 
void setDensityAndVelocity (const Vector3< real_t > &velocity=Vector3< real_t >(real_t(0.0)), const real_t rho=real_t(1.0))
 
void setDensityAndVelocity (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const Vector3< real_t > &velocity=Vector3< real_t >(real_t(0.0)), const real_t rho=real_t(1.0))
 
void setDensityAndVelocity (const Cell &cell, const Vector3< real_t > &velocity=Vector3< real_t >(real_t(0.0)), const real_t rho=real_t(1.0))
 
void setToEquilibrium (const Vector3< real_t > &velocity=Vector3< real_t >(real_t(0.0)), const real_t rho=real_t(1.0))
 
void setToEquilibrium (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const Vector3< real_t > &velocity=Vector3< real_t >(real_t(0.0)), const real_t rho=real_t(1.0))
 
void setToEquilibrium (const Cell &cell, const Vector3< real_t > &velocity=Vector3< real_t >(real_t(0.0)), const real_t rho=real_t(1.0))
 
real_t getDensity (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
real_t getDensity (const Cell &cell) const
 
real_t getDensitySI (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const real_t rho_SI) const
 
real_t getDensitySI (const Cell &cell, const real_t rho_SI) const
 
Vector3< real_tgetMomentumDensity (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
Vector3< real_tgetMomentumDensity (const Cell &cell) const
 
void getMomentumDensity (Vector3< real_t > &momentumDensity, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
void getMomentumDensity (Vector3< real_t > &momentumDensity, const Cell &cell) const
 
Vector3< real_tgetEquilibriumMomentumDensity (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
Vector3< real_tgetEquilibriumMomentumDensity (const Cell &cell) const
 
void getEquilibriumMomentumDensity (Vector3< real_t > &momentumDensity, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
void getEquilibriumMomentumDensity (Vector3< real_t > &momentumDensity, const Cell &cell) const
 
Vector3< real_tgetVelocity (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
Vector3< real_tgetVelocity (const Cell &cell) const
 
void getVelocity (Vector3< real_t > &velocity, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
void getVelocity (Vector3< real_t > &velocity, const Cell &cell) const
 
Vector3< real_tgetEquilibriumVelocity (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
Vector3< real_tgetEquilibriumVelocity (const Cell &cell) const
 
void getEquilibriumVelocity (Vector3< real_t > &velocity, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
void getEquilibriumVelocity (Vector3< real_t > &velocity, const Cell &cell) const
 
Vector3< real_tgetVelocitySI (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const real_t dx_SI, const real_t dt_SI) const
 
Vector3< real_tgetVelocitySI (const Cell &cell, const real_t dx_SI, const real_t dt_SI) const
 
void getVelocitySI (Vector3< real_t > &velocity, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const real_t dx_SI, const real_t dt_SI) const
 
void getVelocitySI (Vector3< real_t > &velocity, const Cell &cell, const real_t dx_SI, const real_t dt_SI) const
 
Vector3< real_tgetVelocitySI (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const real_t dxDividedByDt_SI) const
 
Vector3< real_tgetVelocitySI (const Cell &cell, const real_t dxDividedByDt_SI) const
 
void getVelocitySI (Vector3< real_t > &velocity, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const real_t dxDividedByDt_SI) const
 
void getVelocitySI (Vector3< real_t > &velocity, const Cell &cell, const real_t dxDividedByDt_SI) const
 
real_t getDensityAndMomentumDensity (Vector3< real_t > &momentumDensity, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
real_t getDensityAndMomentumDensity (Vector3< real_t > &momentumDensity, const Cell &cell) const
 
real_t getDensityAndEquilibriumMomentumDensity (Vector3< real_t > &momentumDensity, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
real_t getDensityAndEquilibriumMomentumDensity (Vector3< real_t > &momentumDensity, const Cell &cell) const
 
real_t getDensityAndVelocity (Vector3< real_t > &velocity, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
real_t getDensityAndVelocity (Vector3< real_t > &velocity, const Cell &cell) const
 
real_t getDensityAndEquilibriumVelocity (Vector3< real_t > &velocity, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
real_t getDensityAndEquilibriumVelocity (Vector3< real_t > &velocity, const Cell &cell) const
 
real_t getDensityAndVelocitySI (Vector3< real_t > &velocity, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const real_t rho_SI, const real_t dx_SI, const real_t dt_SI) const
 
real_t getDensityAndVelocitySI (Vector3< real_t > &velocity, const Cell &cell, const real_t rho_SI, const real_t dx_SI, const real_t dt_SI) const
 
real_t getDensityAndVelocitySI (Vector3< real_t > &velocity, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const real_t rho_SI, const real_t dxDividedByDt_SI) const
 
real_t getDensityAndVelocitySI (Vector3< real_t > &velocity, const Cell &cell, const real_t rho_SI, const real_t dxDividedByDt_SI) const
 
real_t getShearRate (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
real_t getShearRate (const Cell &cell) const
 
Matrix3< real_tgetPressureTensor (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
Matrix3< real_tgetPressureTensor (const Cell &cell) const
 
void getPressureTensor (Matrix3< real_t > &pressureTensor, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const
 
void getPressureTensor (Matrix3< real_t > &pressureTensor, const Cell &cell) const
 

Shallow Copy

LatticeModel_T latticeModel_
 
 PdfField (const PdfField< LatticeModel_T > &other)
 
Field< real_t, Stencil::Size > * cloneShallowCopyInternal () const override
 See Field::cloneShallowCopyInternal() Has to be re-implemented because a new GhostLayerField is created. More...
 

Additional Inherited Members

- Public Types inherited from walberla::field::GhostLayerField< T, fSize_ >
using value_type = typename Field< T, fSize_ >::value_type
 
using iterator = typename Field< T, fSize_ >::iterator
 
using const_iterator = typename Field< T, fSize_ >::const_iterator
 
using reverse_iterator = typename Field< T, fSize_ >::reverse_iterator
 
using const_reverse_iterator = typename Field< T, fSize_ >::const_reverse_iterator
 
using base_iterator = typename Field< T, fSize_ >::base_iterator
 
using const_base_iterator = typename Field< T, fSize_ >::const_base_iterator
 
using Ptr = typename Field< T, fSize_ >::Ptr
 
using ConstPtr = typename Field< T, fSize_ >::ConstPtr
 
using FlattenedField = typename std::conditional< VectorTrait< T >::F_SIZE !=0, GhostLayerField< typename VectorTrait< T >::OutputType, VectorTrait< T >::F_SIZE *fSize_ >, GhostLayerField< T, fSize_ > >::type
 
- Public Types inherited from walberla::field::Field< T, fSize_ >
using value_type = T
 
using iterator = ForwardFieldIterator< T, fSize_ >
 
using const_iterator = ForwardFieldIterator< const T, fSize_ >
 
using reverse_iterator = ReverseFieldIterator< T, fSize_ >
 
using const_reverse_iterator = ReverseFieldIterator< const T, fSize_ >
 
using base_iterator = FieldIterator< T, fSize_ >
 
using const_base_iterator = FieldIterator< const T, fSize_ >
 
using Ptr = FieldPointer< Field< T, fSize_ >, Field< T, fSize_ >, T >
 
using ConstPtr = FieldPointer< Field< T, fSize_ >, const Field< T, fSize_ >, const T >
 
using FlattenedField = typename std::conditional< VectorTrait< T >::F_SIZE !=0, Field< typename VectorTrait< T >::OutputType, VectorTrait< T >::F_SIZE *fSize_ >, Field< T, fSize_ > >::type
 
using MonitorFunction = std::function< void(cell_idx_t, cell_idx_t, cell_idx_t, cell_idx_t, const T &)>
 
- Public Member Functions inherited from walberla::field::GhostLayerField< T, fSize_ >
 GhostLayerField (uint_t xSize, uint_t ySize, uint_t zSize, uint_t gl, const Layout &layout=fzyx, const shared_ptr< FieldAllocator< T > > &alloc=shared_ptr< FieldAllocator< T > >())
 Creates an uninitialized field of given size. More...
 
 GhostLayerField (uint_t xSize, uint_t ySize, uint_t zSize, uint_t gl, const T &initValue, const Layout &layout=fzyx, const shared_ptr< FieldAllocator< T > > &alloc=shared_ptr< FieldAllocator< T > >())
 Creates a field and initializes it with constant value. More...
 
 GhostLayerField (uint_t xSize, uint_t ySize, uint_t zSize, uint_t gl, const std::vector< T > &fValues, const Layout &layout=fzyx, const shared_ptr< FieldAllocator< T > > &alloc=shared_ptr< FieldAllocator< T > >())
 Creates a field and initializes f coordinate with vector values. More...
 
 ~GhostLayerField () override=default
 
void init (uint_t xSizeWithoutGhostLayer, uint_t ySizeWithoutGhostLayer, uint_t zSizeWithoutGhostLayer, uint_t nrGhostLayers, const Layout &layout=fzyx, const shared_ptr< FieldAllocator< T > > &alloc=shared_ptr< FieldAllocator< T > >())
 Initializes a field, must be called exactly once. More...
 
void resize (uint_t xSize, uint_t ySize, uint_t zSize) override
 Deletes all stored data, and resizes the field. More...
 
void resize (uint_t xSize, uint_t ySize, uint_t zSize, uint_t gl)
 Deletes all stored data, and resizes the field. More...
 
GhostLayerField< T, fSize_ > * clone () const
 
GhostLayerField< T, fSize_ > * cloneUninitialized () const
 
GhostLayerField< T, fSize_ > * cloneShallowCopy () const
 
FlattenedFieldflattenedShallowCopy () const
 
uint_t xSizeWithGhostLayer () const
 
uint_t ySizeWithGhostLayer () const
 
uint_t zSizeWithGhostLayer () const
 
uint_t sizeWithGhostLayer (uint_t i) const
 
uint_t nrOfGhostLayers () const
 
CellInterval xyzSizeWithGhostLayer () const
 Returns the x/y/z Size of the field with ghost layers. More...
 
void setWithGhostLayer (const T &value)
 Sets all entries (including the ghost layer) of the field to given value. More...
 
void setWithGhostLayer (const std::vector< T > &fValues)
 Initializes the f coordinate to values from vector, in all cells including the ghost layers Sets the entry (x,y,z,f) to fValues[f]. More...
 
iterator beginWithGhostLayer ()
 Iterator over all cells, including the ghost layers. More...
 
const_iterator beginWithGhostLayer () const
 
iterator beginWithGhostLayer (cell_idx_t numGhostLayers)
 
const_iterator beginWithGhostLayer (cell_idx_t numGhostLayers) const
 
iterator beginWithGhostLayerXYZ ()
 Iterates only over all cells including ghost layers of XYZ coordinate, f is always 0. More...
 
const_iterator beginWithGhostLayerXYZ () const
 
iterator beginWithGhostLayerXYZ (cell_idx_t numGhostLayers)
 
const_iterator beginWithGhostLayerXYZ (cell_idx_t numGhostLayers) const
 
iterator beginGhostLayerOnly (stencil::Direction dir, bool fullSlice=false)
 Iterates only over ghost layers of a given direction. More...
 
const_iterator beginGhostLayerOnly (stencil::Direction dir, bool fullSlice=false) const
 Const version of beginGhostLayersOnly() More...
 
iterator beginGhostLayerOnly (uint_t thickness, stencil::Direction dir, bool fullSlice=false)
 Iterates only over specified number of ghost layers of a given direction. More...
 
const_iterator beginGhostLayerOnly (uint_t thickness, stencil::Direction dir, bool fullSlice=false) const
 Const version of beginGhostLayersOnly(uint_t thickness, stencil::Direction) More...
 
iterator beginGhostLayerOnlyXYZ (stencil::Direction dir, cell_idx_t f=0, bool fullSlice=false)
 Iterates only over ghost layers of a given direction, only over xyz coordinates, f is fixed. More...
 
const_iterator beginGhostLayerOnlyXYZ (stencil::Direction dir, cell_idx_t f=0, bool fullSlice=false) const
 Const version of beginGhostLayersOnlyXYZ() More...
 
iterator beginGhostLayerOnlyXYZ (uint_t thickness, stencil::Direction dir, cell_idx_t f=0, bool fullSlice=false)
 Iterates only over ghost layers of a given direction, only over xyz coordinates, f is fixed. More...
 
const_iterator beginGhostLayerOnlyXYZ (uint_t thickness, stencil::Direction dir, cell_idx_t f=0, bool fullSlice=false) const
 Const version of beginGhostLayersOnlyXYZ() More...
 
iterator beginSliceBeforeGhostLayer (stencil::Direction dir, cell_idx_t thickness=1, bool fullSlice=false)
 Iterates only over the last slice before ghost layer. More...
 
const_iterator beginSliceBeforeGhostLayer (stencil::Direction dir, cell_idx_t thickness=1, bool fullSlice=false) const
 Const version of beginSliceBeforeGhostLayer() More...
 
iterator beginSliceBeforeGhostLayerXYZ (stencil::Direction dir, cell_idx_t thickness=1, cell_idx_t f=0, bool fullSlice=false)
 Iterates only over the last slice before ghost layer, only in XYZ direction, f is fixed. More...
 
const_iterator beginSliceBeforeGhostLayerXYZ (stencil::Direction dir, cell_idx_t thickness=1, cell_idx_t f=0, bool fullSlice=false) const
 Const version of beginSliceBeforeGhostLayerXYZ() More...
 
void getGhostRegion (stencil::Direction dir, CellInterval &ghostAreaOut, cell_idx_t thickness, bool fullSlice=false) const
 
void getSliceBeforeGhostLayer (stencil::Direction d, CellInterval &ci, cell_idx_t thickness=1, bool fullSlice=false) const
 
bool isInInnerPart (const Cell &cell) const
 Checks if a given cell is in the inner part of the field ( not in ghost region or outside ) More...
 
reverse_iterator rbeginWithGhostLayer ()
 Reverse Iterator over all cells, including the ghost layers. More...
 
const_reverse_iterator rbeginWithGhostLayer () const
 
reverse_iterator rbeginWithGhostLayerXYZ ()
 Iterates only over all cells including ghost layers of XYZ coordinate, f is always 0. More...
 
const_reverse_iterator rbeginWithGhostLayerXYZ () const
 
GhostLayerField< T, fSize_ > * getSlicedField (const CellInterval &interval) const
 
void slice (const CellInterval &interval) override
 Changes the coordinate system of the field. More...
 
void shiftCoordinates (cell_idx_t cx, cell_idx_t cy, cell_idx_t cz) override
 
uint8_t advanceTimestep ()
 
uint8_t getTimestep () const
 
uint8_t getTimestepPlusOne () const
 
bool isEvenTimeStep () const
 
- Public Member Functions inherited from walberla::field::Field< T, fSize_ >
 Field (uint_t xSize, uint_t ySize, uint_t zSize, const Layout &layout=fzyx, const shared_ptr< FieldAllocator< T > > &alloc=shared_ptr< FieldAllocator< T > >())
 Creates an uninitialized field of given size. More...
 
 Field (uint_t xSize, uint_t ySize, uint_t zSize, const T &initValue, const Layout &layout=fzyx, const shared_ptr< FieldAllocator< T > > &alloc=shared_ptr< FieldAllocator< T > >())
 Creates a field and initializes it with constant. More...
 
 Field (uint_t xSize, uint_t ySize, uint_t zSize, const std::vector< T > &fValues, const Layout &layout=fzyx, const shared_ptr< FieldAllocator< T > > &alloc=shared_ptr< FieldAllocator< T > >())
 Creates a field and initializes f coordinate with vector values. More...
 
virtual ~Field ()
 Destructor, using Allocator template parameter. More...
 
void init (uint_t xSize, uint_t ySize, uint_t zSize, const Layout &layout=fzyx, shared_ptr< FieldAllocator< T > > alloc=shared_ptr< FieldAllocator< T > >(), uint_t innerGhostLayerSizeForAlignedAlloc=0)
 Initializes the field with a given size, in a given layout. More...
 
Field< T, fSize_ > * clone () const
 Returns a deep copy of the current field. More...
 
Field< T, fSize_ > * cloneUninitialized () const
 Creates a new field that has equal size and layout as this field. More...
 
Field< T, fSize_ > * cloneShallowCopy () const
 Returns a shallow copy of the current field. More...
 
FlattenedFieldflattenedShallowCopy () const
 Returns a flattened shallow copy of the current field. More...
 
T & get (cell_idx_t x, cell_idx_t y, cell_idx_t z)
 get function with only (x,y,z) coordinates, assumes fSize=1 More...
 
const T & get (cell_idx_t x, cell_idx_t y, cell_idx_t z) const
 get function with only (x,y,z) coordinates, assumes fSize=1 More...
 
T & get (cell_idx_t x, cell_idx_t y, cell_idx_t z, cell_idx_t f)
 Non-Const variant of get() More...
 
const T & get (cell_idx_t x, cell_idx_t y, cell_idx_t z, cell_idx_t f) const
 Accesses the value at given coordinate. More...
 
T & get (cell_idx_t x, cell_idx_t y, cell_idx_t z, uint_t f)
 get() variant which takes a uint_t as last coordinate, as for example Stencil::toIdx() returns More...
 
const T & get (cell_idx_t x, cell_idx_t y, cell_idx_t z, uint_t f) const
 get() variant which takes a uint_t as last coordinate, as for example Stencil::toIdx() returns More...
 
T & get (const Cell &cell)
 get overload using a cell as input, only possible if fSize=1 More...
 
const T & get (const Cell &cell) const
 get overload using a cell as input, only possible if fSize=1 More...
 
T & get (const Cell &c, cell_idx_t f)
 
const T & get (const Cell &c, cell_idx_t f) const
 
T & get (const Cell &c, uint_t f)
 
const T & get (const Cell &c, uint_t f) const
 
T & get (const base_iterator &iter)
 get overload, where position is specified using an iterator of another field with equal size More...
 
const T & get (const base_iterator &iter) const
 get overload, where position is specified using an iterator of another field with equal size More...
 
T & operator() (cell_idx_t x, cell_idx_t y, cell_idx_t z)
 
const T & operator() (cell_idx_t x, cell_idx_t y, cell_idx_t z) const
 
T & operator() (cell_idx_t x, cell_idx_t y, cell_idx_t z, cell_idx_t f)
 
const T & operator() (cell_idx_t x, cell_idx_t y, cell_idx_t z, cell_idx_t f) const
 
T & operator() (cell_idx_t x, cell_idx_t y, cell_idx_t z, uint_t f)
 
const T & operator() (cell_idx_t x, cell_idx_t y, cell_idx_t z, uint_t f) const
 
T & operator() (const Cell &cell)
 
const T & operator() (const Cell &cell) const
 
T & operator() (const Cell &cell, cell_idx_t f)
 
const T & operator() (const Cell &cell, cell_idx_t f) const
 
T & operator() (const Cell &cell, uint_t f)
 
const T & operator() (const Cell &cell, uint_t f) const
 
T & operator() (const base_iterator &iter)
 
const T & operator() (const base_iterator &iter) const
 
T & getNeighbor (cell_idx_t x, cell_idx_t y, cell_idx_t z, stencil::Direction d)
 returns neighboring value of cell in the given direction More...
 
const T & getNeighbor (cell_idx_t x, cell_idx_t y, cell_idx_t z, stencil::Direction d) const
 returns neighboring value of cell in the given direction More...
 
T & getNeighbor (cell_idx_t x, cell_idx_t y, cell_idx_t z, uint_t f, stencil::Direction d)
 returns neighboring value of cell in the given direction More...
 
const T & getNeighbor (cell_idx_t x, cell_idx_t y, cell_idx_t z, uint_t f, stencil::Direction d) const
 returns neighboring value of cell in the given direction More...
 
T & getNeighbor (const Cell &cell, stencil::Direction d)
 get overload using a cell as input, only possible if fSize=1, with neighbor access More...
 
const T & getNeighbor (const Cell &cell, stencil::Direction d) const
 get overload using a cell as input, only possible if fSize=1, with neighbor access More...
 
T & getF (T *const xyz0, const cell_idx_t f)
 
const T & getF (const T *const xyz0, const cell_idx_t f) const
 
T & getF (T *const xyz0, const uint_t f)
 
const T & getF (const T *const xyz0, const uint_t f) const
 
void set (const T &value)
 Sets all entries of the field to given value. More...
 
void set (const std::vector< T > &fValues)
 Initializes the f coordinate to values from vector Sets the entry (x,y,z,f) to fValues[f]. More...
 
void set (const Field< T, fSize_ > &other)
 Copies all entries of the given field to this field. More...
 
void set (const Field< T, fSize_ > *other)
 
void swapDataPointers (Field< T, fSize_ > &other)
 Swap two fields efficiently by exchanging only values_ pointer The two fields have to have identical sizes and same layout. More...
 
void swapDataPointers (Field< T, fSize_ > *other)
 
bool operator== (const Field< T, fSize_ > &other) const
 Equality operator compares element-wise. More...
 
bool operator!= (const Field< T, fSize_ > &other) const
 Inequality operator compares element-wise. More...
 
bool hasSameAllocSize (const Field< T, fSize_ > &other) const
 True if allocation sizes of all dimensions match. More...
 
bool hasSameSize (const Field< T, fSize_ > &other) const
 True if sizes of all dimensions match. More...
 
iterator begin ()
 Returns iterator, which can iterate over complete field in a suitable order depending on layout. More...
 
const_iterator begin () const
 
iterator beginXYZ ()
 Iterates only over XYZ coordinate, f is always 0. More...
 
const_iterator beginXYZ () const
 
iterator beginSlice (cell_idx_t xBeg, cell_idx_t yBeg, cell_idx_t zBeg, cell_idx_t fBeg, cell_idx_t xEnd, cell_idx_t yEnd, cell_idx_t zEnd, cell_idx_t fEnd)
 Returns iterator which iterates over a sub-block of the field. More...
 
const_iterator beginSlice (cell_idx_t xBeg, cell_idx_t yBeg, cell_idx_t zBeg, cell_idx_t fBeg, cell_idx_t xEnd, cell_idx_t yEnd, cell_idx_t zEnd, cell_idx_t fEnd) const
 Const variant of beginSlice() More...
 
iterator beginSliceXYZ (const CellInterval &interval, cell_idx_t f=0)
 Returns iterator which iterates over a slice, but only in x,y,z coordinates. More...
 
const_iterator beginSliceXYZ (const CellInterval &interval, cell_idx_t f=0) const
 Const variant of beginSliceXYZ() More...
 
const iteratorend ()
 
const const_iteratorend () const
 
reverse_iterator rbegin ()
 Returns reverse iterator, which can iterate over complete field in a suitable order depending on layout. More...
 
const_reverse_iterator rbegin () const
 
reverse_iterator rbeginXYZ ()
 Iterates only over XYZ coordinate, f is always 0. More...
 
const_reverse_iterator rbeginXYZ () const
 
const reverse_iteratorrend ()
 
const const_reverse_iteratorrend () const
 
uint_t xSize () const
 
uint_t ySize () const
 
uint_t zSize () const
 
uint_t fSize () const
 
uint_t size (uint_t coord) const
 
uint_t xAllocSize () const
 
uint_t yAllocSize () const
 
uint_t zAllocSize () const
 
uint_t fAllocSize () const
 
uint_t allocSize () const
 
CellInterval xyzSize () const
 
CellInterval xyzAllocSize () const
 
Layout layout () const
 
int64_t xStride () const
 
int64_t yStride () const
 
int64_t zStride () const
 
int64_t fStride () const
 
cell_idx_t xOff () const
 
cell_idx_t yOff () const
 
cell_idx_t zOff () const
 
bool coordinatesValid (cell_idx_t x, cell_idx_t y, cell_idx_t z, cell_idx_t f) const
 
Field< T, fSize_ > * getSlicedField (const CellInterval &interval) const
 Create a different "view" of the field, where the created field has the size of the given sliceInterval. More...
 
T * data ()
 
const T * data () const
 
T * dataAt (cell_idx_t x, cell_idx_t y, cell_idx_t z, cell_idx_t f)
 
const T * dataAt (cell_idx_t x, cell_idx_t y, cell_idx_t z, cell_idx_t f) const
 
T * dataInner ()
 
const T * dataInner () const
 
shared_ptr< FieldAllocator< T > > getAllocator () const
 Returns internal data allocator. More...
 
void addMonitoringFunction (const MonitorFunction &func)
 Registers a monitoring function. More...
 
- Static Public Attributes inherited from walberla::field::Field< T, fSize_ >
static const uint_t F_SIZE = fSize_
 
static const const_iterator staticConstEnd = ForwardFieldIterator<const T,fSize_>()
 Const end iterator, see end() More...
 
static const iterator staticEnd = ForwardFieldIterator<T,fSize_>()
 End iterator, can be used with begin() and beginBlock() More...
 
static const const_reverse_iterator staticConstREnd = ReverseFieldIterator<const T,fSize_>()
 Const end iterator, see end() More...
 
static const reverse_iterator staticREnd = ReverseFieldIterator<T,fSize_>()
 End iterator, can be used with begin() and beginBlock() More...
 
- Protected Member Functions inherited from walberla::field::GhostLayerField< T, fSize_ >
 GhostLayerField ()
 Creates a field of zero size. More...
 
Field< T, fSize_ >::FlattenedFieldflattenedShallowCopyInternal () const override
 See Field::flattenedShallowCopyInternal() Has to be re-implemented because a new GhostLayerField is created. More...
 
 GhostLayerField (const GhostLayerField< T, fSize_ > &other)
 Private copy constructor, which does a shallow copy. More...
 
template<typename T2 , uint_t fSize2>
 GhostLayerField (const GhostLayerField< T2, fSize2 > &other)
 Private copy constructor, which does a flattened shallow copy. More...
 
- Protected Member Functions inherited from walberla::field::Field< T, fSize_ >
 Field (const Field &other)
 Private copy constructor that creates a shallow copy i.e. More...
 
template<typename T2 , uint_t fSize2>
 Field (const Field< T2, fSize2 > &other)
 Private copy constructor that creates a flattened shallow copy i.e. More...
 
virtual uint_t referenceCount () const
 Returns the number of objects that internally use the same data. More...
 
 Field ()
 Creates an uninitialized field of size zero (no allocated memory) More...
 
void setOffsets (uint_t xOffset, uint_t xSize, uint_t yOffset, uint_t ySize, uint_t zOffset, uint_t zSizes)
 Moves the coordinate system of the field. More...
 
shared_ptr< FieldAllocator< T > > allocator () const
 
bool addressInsideAllocedSpace (const T *const value) const
 
void assertValidCoordinates (cell_idx_t x, cell_idx_t y, cell_idx_t z, cell_idx_t f) const
 
- Protected Attributes inherited from walberla::field::GhostLayerField< T, fSize_ >
uint_t gl_
 Number of ghost layers. More...
 
uint8_t timestepCounter_
 

Member Typedef Documentation

◆ base_iterator

template<typename LatticeModel_T >
using walberla::lbm::PdfField< LatticeModel_T >::base_iterator = typename GhostLayerField<real_t, Stencil::Size>::base_iterator

◆ const_base_iterator

template<typename LatticeModel_T >
using walberla::lbm::PdfField< LatticeModel_T >::const_base_iterator = typename GhostLayerField<real_t, Stencil::Size>::const_base_iterator

◆ const_iterator

template<typename LatticeModel_T >
using walberla::lbm::PdfField< LatticeModel_T >::const_iterator = typename GhostLayerField<real_t, Stencil::Size>::const_iterator

◆ const_reverse_iterator

template<typename LatticeModel_T >
using walberla::lbm::PdfField< LatticeModel_T >::const_reverse_iterator = typename GhostLayerField<real_t, Stencil::Size>::const_reverse_iterator

◆ ConstPtr

template<typename LatticeModel_T >
using walberla::lbm::PdfField< LatticeModel_T >::ConstPtr = typename GhostLayerField<real_t, Stencil::Size>::ConstPtr

◆ iterator

template<typename LatticeModel_T >
using walberla::lbm::PdfField< LatticeModel_T >::iterator = typename GhostLayerField<real_t, Stencil::Size>::iterator

◆ LatticeModel

template<typename LatticeModel_T >
using walberla::lbm::PdfField< LatticeModel_T >::LatticeModel = LatticeModel_T

◆ Ptr

template<typename LatticeModel_T >
using walberla::lbm::PdfField< LatticeModel_T >::Ptr = typename GhostLayerField<real_t, Stencil::Size>::Ptr

◆ reverse_iterator

template<typename LatticeModel_T >
using walberla::lbm::PdfField< LatticeModel_T >::reverse_iterator = typename GhostLayerField<real_t, Stencil::Size>::reverse_iterator

◆ Stencil

template<typename LatticeModel_T >
using walberla::lbm::PdfField< LatticeModel_T >::Stencil = typename LatticeModel_T::Stencil

◆ value_type

template<typename LatticeModel_T >
using walberla::lbm::PdfField< LatticeModel_T >::value_type = typename GhostLayerField<real_t, Stencil::Size>::value_type

Constructor & Destructor Documentation

◆ PdfField() [1/2]

template<typename LatticeModel_T >
walberla::lbm::PdfField< LatticeModel_T >::PdfField ( const uint_t  _xSize,
const uint_t  _ySize,
const uint_t  _zSize,
const LatticeModel_T _latticeModel,
const bool  initialize = true,
const Vector3< real_t > &  initialVelocity = Vector3real_t >( real_t(0.0) ),
const real_t  initialDensity = real_t(1.0),
const uint_t  ghostLayers = uint_t(1),
const field::Layout _layout = field::fzyx,
const shared_ptr< field::FieldAllocator< real_t > > &  alloc = shared_ptr< field::FieldAllocator<real_t> >() 
)

◆ ~PdfField()

template<typename LatticeModel_T >
walberla::lbm::PdfField< LatticeModel_T >::~PdfField ( )
overridedefault

◆ PdfField() [2/2]

template<typename LatticeModel_T >
walberla::lbm::PdfField< LatticeModel_T >::PdfField ( const PdfField< LatticeModel_T > &  other)
inlineprotected

Member Function Documentation

◆ clone()

template<typename LatticeModel_T >
PdfField< LatticeModel_T > * walberla::lbm::PdfField< LatticeModel_T >::clone
inline

◆ cloneShallowCopy()

template<typename LatticeModel_T >
PdfField< LatticeModel_T > * walberla::lbm::PdfField< LatticeModel_T >::cloneShallowCopy
inline

◆ cloneShallowCopyInternal()

template<typename LatticeModel_T >
Field< real_t, Stencil::Size >* walberla::lbm::PdfField< LatticeModel_T >::cloneShallowCopyInternal ( ) const
inlineoverrideprotectedvirtual

See Field::cloneShallowCopyInternal() Has to be re-implemented because a new GhostLayerField is created.

Reimplemented from walberla::field::GhostLayerField< T, fSize_ >.

◆ cloneUninitialized()

template<typename LatticeModel_T >
PdfField< LatticeModel_T > * walberla::lbm::PdfField< LatticeModel_T >::cloneUninitialized
inline

◆ get() [1/4]

template<typename LatticeModel_T >
real_t& walberla::lbm::PdfField< LatticeModel_T >::get ( cell_idx_t  x,
cell_idx_t  y,
cell_idx_t  z,
stencil::Direction  d 
)
inline

◆ get() [2/4]

template<typename LatticeModel_T >
const real_t& walberla::lbm::PdfField< LatticeModel_T >::get ( cell_idx_t  x,
cell_idx_t  y,
cell_idx_t  z,
stencil::Direction  d 
) const
inline

◆ get() [3/4]

template<typename LatticeModel_T >
real_t& walberla::lbm::PdfField< LatticeModel_T >::get ( const Cell c,
stencil::Direction  d 
)
inline

◆ get() [4/4]

template<typename LatticeModel_T >
const real_t& walberla::lbm::PdfField< LatticeModel_T >::get ( const Cell c,
stencil::Direction  d 
) const
inline

◆ getDensity() [1/2]

template<typename LatticeModel_T >
real_t walberla::lbm::PdfField< LatticeModel_T >::getDensity ( const Cell cell) const
inline

◆ getDensity() [2/2]

template<typename LatticeModel_T >
real_t walberla::lbm::PdfField< LatticeModel_T >::getDensity ( const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z 
) const
inline

◆ getDensityAndEquilibriumMomentumDensity() [1/2]

template<typename LatticeModel_T >
real_t walberla::lbm::PdfField< LatticeModel_T >::getDensityAndEquilibriumMomentumDensity ( Vector3< real_t > &  momentumDensity,
const Cell cell 
) const
inline

◆ getDensityAndEquilibriumMomentumDensity() [2/2]

template<typename LatticeModel_T >
real_t walberla::lbm::PdfField< LatticeModel_T >::getDensityAndEquilibriumMomentumDensity ( Vector3< real_t > &  momentumDensity,
const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z 
) const
inline

◆ getDensityAndEquilibriumVelocity() [1/2]

template<typename LatticeModel_T >
real_t walberla::lbm::PdfField< LatticeModel_T >::getDensityAndEquilibriumVelocity ( Vector3< real_t > &  velocity,
const Cell cell 
) const
inline

◆ getDensityAndEquilibriumVelocity() [2/2]

template<typename LatticeModel_T >
real_t walberla::lbm::PdfField< LatticeModel_T >::getDensityAndEquilibriumVelocity ( Vector3< real_t > &  velocity,
const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z 
) const
inline

◆ getDensityAndMomentumDensity() [1/2]

template<typename LatticeModel_T >
real_t walberla::lbm::PdfField< LatticeModel_T >::getDensityAndMomentumDensity ( Vector3< real_t > &  momentumDensity,
const Cell cell 
) const
inline

◆ getDensityAndMomentumDensity() [2/2]

template<typename LatticeModel_T >
real_t walberla::lbm::PdfField< LatticeModel_T >::getDensityAndMomentumDensity ( Vector3< real_t > &  momentumDensity,
const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z 
) const
inline

◆ getDensityAndVelocity() [1/2]

template<typename LatticeModel_T >
real_t walberla::lbm::PdfField< LatticeModel_T >::getDensityAndVelocity ( Vector3< real_t > &  velocity,
const Cell cell 
) const
inline

◆ getDensityAndVelocity() [2/2]

template<typename LatticeModel_T >
real_t walberla::lbm::PdfField< LatticeModel_T >::getDensityAndVelocity ( Vector3< real_t > &  velocity,
const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z 
) const
inline

◆ getDensityAndVelocitySI() [1/4]

template<typename LatticeModel_T >
real_t walberla::lbm::PdfField< LatticeModel_T >::getDensityAndVelocitySI ( Vector3< real_t > &  velocity,
const Cell cell,
const real_t  rho_SI,
const real_t  dx_SI,
const real_t  dt_SI 
) const
inline

◆ getDensityAndVelocitySI() [2/4]

template<typename LatticeModel_T >
real_t walberla::lbm::PdfField< LatticeModel_T >::getDensityAndVelocitySI ( Vector3< real_t > &  velocity,
const Cell cell,
const real_t  rho_SI,
const real_t  dxDividedByDt_SI 
) const
inline

◆ getDensityAndVelocitySI() [3/4]

template<typename LatticeModel_T >
real_t walberla::lbm::PdfField< LatticeModel_T >::getDensityAndVelocitySI ( Vector3< real_t > &  velocity,
const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z,
const real_t  rho_SI,
const real_t  dx_SI,
const real_t  dt_SI 
) const
inline

◆ getDensityAndVelocitySI() [4/4]

template<typename LatticeModel_T >
real_t walberla::lbm::PdfField< LatticeModel_T >::getDensityAndVelocitySI ( Vector3< real_t > &  velocity,
const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z,
const real_t  rho_SI,
const real_t  dxDividedByDt_SI 
) const
inline

◆ getDensitySI() [1/2]

template<typename LatticeModel_T >
real_t walberla::lbm::PdfField< LatticeModel_T >::getDensitySI ( const Cell cell,
const real_t  rho_SI 
) const
inline

◆ getDensitySI() [2/2]

template<typename LatticeModel_T >
real_t walberla::lbm::PdfField< LatticeModel_T >::getDensitySI ( const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z,
const real_t  rho_SI 
) const
inline

◆ getEquilibriumMomentumDensity() [1/4]

template<typename LatticeModel_T >
Vector3< real_t > walberla::lbm::PdfField< LatticeModel_T >::getEquilibriumMomentumDensity ( const Cell cell) const
inline

◆ getEquilibriumMomentumDensity() [2/4]

template<typename LatticeModel_T >
Vector3< real_t > walberla::lbm::PdfField< LatticeModel_T >::getEquilibriumMomentumDensity ( const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z 
) const
inline

◆ getEquilibriumMomentumDensity() [3/4]

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::getEquilibriumMomentumDensity ( Vector3< real_t > &  momentumDensity,
const Cell cell 
) const
inline

◆ getEquilibriumMomentumDensity() [4/4]

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::getEquilibriumMomentumDensity ( Vector3< real_t > &  momentumDensity,
const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z 
) const
inline

◆ getEquilibriumVelocity() [1/4]

template<typename LatticeModel_T >
Vector3< real_t > walberla::lbm::PdfField< LatticeModel_T >::getEquilibriumVelocity ( const Cell cell) const
inline

◆ getEquilibriumVelocity() [2/4]

template<typename LatticeModel_T >
Vector3< real_t > walberla::lbm::PdfField< LatticeModel_T >::getEquilibriumVelocity ( const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z 
) const
inline

◆ getEquilibriumVelocity() [3/4]

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::getEquilibriumVelocity ( Vector3< real_t > &  velocity,
const Cell cell 
) const
inline

◆ getEquilibriumVelocity() [4/4]

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::getEquilibriumVelocity ( Vector3< real_t > &  velocity,
const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z 
) const
inline

◆ getMomentumDensity() [1/4]

template<typename LatticeModel_T >
Vector3< real_t > walberla::lbm::PdfField< LatticeModel_T >::getMomentumDensity ( const Cell cell) const
inline

◆ getMomentumDensity() [2/4]

template<typename LatticeModel_T >
Vector3< real_t > walberla::lbm::PdfField< LatticeModel_T >::getMomentumDensity ( const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z 
) const
inline

◆ getMomentumDensity() [3/4]

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::getMomentumDensity ( Vector3< real_t > &  momentumDensity,
const Cell cell 
) const
inline

◆ getMomentumDensity() [4/4]

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::getMomentumDensity ( Vector3< real_t > &  momentumDensity,
const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z 
) const
inline

◆ getPressureTensor() [1/4]

template<typename LatticeModel_T >
Matrix3< real_t > walberla::lbm::PdfField< LatticeModel_T >::getPressureTensor ( const Cell cell) const
inline

◆ getPressureTensor() [2/4]

template<typename LatticeModel_T >
Matrix3< real_t > walberla::lbm::PdfField< LatticeModel_T >::getPressureTensor ( const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z 
) const
inline

◆ getPressureTensor() [3/4]

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::getPressureTensor ( Matrix3< real_t > &  pressureTensor,
const Cell cell 
) const
inline

◆ getPressureTensor() [4/4]

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::getPressureTensor ( Matrix3< real_t > &  pressureTensor,
const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z 
) const
inline

◆ getShearRate() [1/2]

template<typename LatticeModel_T >
real_t walberla::lbm::PdfField< LatticeModel_T >::getShearRate ( const Cell cell) const
inline

◆ getShearRate() [2/2]

template<typename LatticeModel_T >
real_t walberla::lbm::PdfField< LatticeModel_T >::getShearRate ( const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z 
) const
inline

◆ getVelocity() [1/4]

template<typename LatticeModel_T >
Vector3< real_t > walberla::lbm::PdfField< LatticeModel_T >::getVelocity ( const Cell cell) const
inline

◆ getVelocity() [2/4]

template<typename LatticeModel_T >
Vector3< real_t > walberla::lbm::PdfField< LatticeModel_T >::getVelocity ( const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z 
) const
inline

◆ getVelocity() [3/4]

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::getVelocity ( Vector3< real_t > &  velocity,
const Cell cell 
) const
inline

◆ getVelocity() [4/4]

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::getVelocity ( Vector3< real_t > &  velocity,
const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z 
) const
inline

◆ getVelocitySI() [1/8]

template<typename LatticeModel_T >
Vector3< real_t > walberla::lbm::PdfField< LatticeModel_T >::getVelocitySI ( const Cell cell,
const real_t  dx_SI,
const real_t  dt_SI 
) const
inline

◆ getVelocitySI() [2/8]

template<typename LatticeModel_T >
Vector3< real_t > walberla::lbm::PdfField< LatticeModel_T >::getVelocitySI ( const Cell cell,
const real_t  dxDividedByDt_SI 
) const
inline

◆ getVelocitySI() [3/8]

template<typename LatticeModel_T >
Vector3< real_t > walberla::lbm::PdfField< LatticeModel_T >::getVelocitySI ( const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z,
const real_t  dx_SI,
const real_t  dt_SI 
) const
inline

◆ getVelocitySI() [4/8]

template<typename LatticeModel_T >
Vector3< real_t > walberla::lbm::PdfField< LatticeModel_T >::getVelocitySI ( const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z,
const real_t  dxDividedByDt_SI 
) const
inline

◆ getVelocitySI() [5/8]

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::getVelocitySI ( Vector3< real_t > &  velocity,
const Cell cell,
const real_t  dx_SI,
const real_t  dt_SI 
) const
inline

◆ getVelocitySI() [6/8]

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::getVelocitySI ( Vector3< real_t > &  velocity,
const Cell cell,
const real_t  dxDividedByDt_SI 
) const
inline

◆ getVelocitySI() [7/8]

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::getVelocitySI ( Vector3< real_t > &  velocity,
const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z,
const real_t  dx_SI,
const real_t  dt_SI 
) const
inline

◆ getVelocitySI() [8/8]

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::getVelocitySI ( Vector3< real_t > &  velocity,
const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z,
const real_t  dxDividedByDt_SI 
) const
inline

◆ latticeModel() [1/2]

template<typename LatticeModel_T >
LatticeModel_T& walberla::lbm::PdfField< LatticeModel_T >::latticeModel ( )
inline

◆ latticeModel() [2/2]

template<typename LatticeModel_T >
const LatticeModel_T& walberla::lbm::PdfField< LatticeModel_T >::latticeModel ( ) const
inline

◆ operator()() [1/4]

template<typename LatticeModel_T >
real_t& walberla::lbm::PdfField< LatticeModel_T >::operator() ( cell_idx_t  x,
cell_idx_t  y,
cell_idx_t  z,
stencil::Direction  d 
)
inline

◆ operator()() [2/4]

template<typename LatticeModel_T >
const real_t& walberla::lbm::PdfField< LatticeModel_T >::operator() ( cell_idx_t  x,
cell_idx_t  y,
cell_idx_t  z,
stencil::Direction  d 
) const
inline

◆ operator()() [3/4]

template<typename LatticeModel_T >
real_t& walberla::lbm::PdfField< LatticeModel_T >::operator() ( const Cell c,
stencil::Direction  d 
)
inline

◆ operator()() [4/4]

template<typename LatticeModel_T >
const real_t& walberla::lbm::PdfField< LatticeModel_T >::operator() ( const Cell c,
stencil::Direction  d 
) const
inline

◆ resetLatticeModel()

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::resetLatticeModel ( const LatticeModel_T lm)
inline

◆ setDensityAndVelocity() [1/3]

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::setDensityAndVelocity ( const Cell cell,
const Vector3< real_t > &  velocity = Vector3real_t >( real_t(0.0) ),
const real_t  rho = real_t(1.0) 
)
inline

◆ setDensityAndVelocity() [2/3]

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::setDensityAndVelocity ( const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z,
const Vector3< real_t > &  velocity = Vector3real_t >( real_t(0.0) ),
const real_t  rho = real_t(1.0) 
)
inline

◆ setDensityAndVelocity() [3/3]

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::setDensityAndVelocity ( const Vector3< real_t > &  velocity = Vector3real_t >( real_t(0.0) ),
const real_t  rho = real_t(1.0) 
)
inline

◆ setToEquilibrium() [1/3]

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::setToEquilibrium ( const Cell cell,
const Vector3< real_t > &  velocity = Vector3real_t >( real_t(0.0) ),
const real_t  rho = real_t(1.0) 
)
inline

◆ setToEquilibrium() [2/3]

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::setToEquilibrium ( const cell_idx_t  x,
const cell_idx_t  y,
const cell_idx_t  z,
const Vector3< real_t > &  velocity = Vector3real_t >( real_t(0.0) ),
const real_t  rho = real_t(1.0) 
)
inline

◆ setToEquilibrium() [3/3]

template<typename LatticeModel_T >
void walberla::lbm::PdfField< LatticeModel_T >::setToEquilibrium ( const Vector3< real_t > &  velocity = Vector3real_t >( real_t(0.0) ),
const real_t  rho = real_t(1.0) 
)
inline

Member Data Documentation

◆ latticeModel_

template<typename LatticeModel_T >
LatticeModel_T walberla::lbm::PdfField< LatticeModel_T >::latticeModel_
protected

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