OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
olb::BlockLatticeStructure3D< T, DESCRIPTOR > Class Template Referenceabstract

BlockLatticeStructure3D is a interface class for defining dynamics on a BlockStructure3D. More...

#include <blockLatticeStructure3D.h>

+ Inheritance diagram for olb::BlockLatticeStructure3D< T, DESCRIPTOR >:
+ Collaboration diagram for olb::BlockLatticeStructure3D< T, DESCRIPTOR >:

Public Member Functions

 BlockLatticeStructure3D (int nx, int ny, int nz)
 
 ~BlockLatticeStructure3D () override
 
virtual void defineRho (BlockIndicatorF3D< T > &indicator, AnalyticalF< 3, T, T > &rho)
 Define rho on a domain described by an indicator.
 
virtual void defineRho (BlockGeometryStructure3D< T > &blockGeometry, int material, AnalyticalF< 3, T, T > &rho)
 Define rho on a domain with a particular material number.
 
virtual void defineU (BlockIndicatorF3D< T > &indicator, AnalyticalF< 3, T, T > &u)
 Define u on a domain described by an indicator.
 
virtual void defineU (BlockGeometryStructure3D< T > &blockGeometry, int material, AnalyticalF< 3, T, T > &u)
 Define u on a domain with a particular material number.
 
virtual void defineRhoU (BlockIndicatorF3D< T > &indicator, AnalyticalF< 3, T, T > &rho, AnalyticalF< 3, T, T > &u)
 Define rho and u on a domain described by an indicator.
 
virtual void defineRhoU (BlockGeometryStructure3D< T > &blockGeometry, int material, AnalyticalF< 3, T, T > &rho, AnalyticalF< 3, T, T > &u)
 Define rho and u on a domain with a particular material number.
 
virtual void definePopulations (BlockIndicatorF3D< T > &indicator, AnalyticalF< 3, T, T > &Pop)
 Define a population on a domain described by an indicator.
 
virtual void definePopulations (BlockGeometryStructure3D< T > &blockGeometry, int material, AnalyticalF< 3, T, T > &Pop)
 Define a population on a domain with a particular material number.
 
virtual void definePopulations (BlockIndicatorF3D< T > &indicator, BlockF3D< T > &Pop)
 
virtual void definePopulations (BlockGeometryStructure3D< T > &blockGeometry, int material, BlockF3D< T > &Pop)
 Define a population on a domain with a particular material number.
 
template<typename FIELD >
void defineField (BlockIndicatorF3D< T > &indicator, AnalyticalF< 3, T, T > &field)
 Define a field on a domain described by an indicator.
 
template<typename FIELD >
void defineField (BlockGeometryStructure3D< T > &blockGeometry, int material, AnalyticalF< 3, T, T > &field)
 Define a field on a domain with a particular material number.
 
template<typename FIELD >
void defineField (BlockGeometryStructure3D< T > &blockGeometry, IndicatorF3D< T > &indicatorF, AnalyticalF< 3, T, T > &field)
 Define a field on a domain described by an analytical indicator.
 
virtual void iniEquilibrium (BlockIndicatorF3D< T > &indicator, AnalyticalF< 3, T, T > &rho, AnalyticalF< 3, T, T > &u)
 Initialize by equilibrium on a domain described by an indicator.
 
virtual void iniEquilibrium (BlockGeometryStructure3D< T > &blockGeometry, int material, AnalyticalF< 3, T, T > &rho, AnalyticalF< 3, T, T > &u)
 Initialize by equilibrium on a domain with a particular material number.
 
virtual void iniRegularized (BlockIndicatorF3D< T > &indicator, AnalyticalF< 3, T, T > &rho, AnalyticalF< 3, T, T > &u, AnalyticalF< 3, T, T > &pi)
 Initialize by non- and equilibrium on a domain described by an indicator.
 
virtual void iniRegularized (BlockGeometryStructure3D< T > &blockGeometry, int material, AnalyticalF< 3, T, T > &rho, AnalyticalF< 3, T, T > &u, AnalyticalF< 3, T, T > &pi)
 Initialize by equilibrium on a domain with a particular material number.
 
virtual Cell< T, DESCRIPTOR > get (int iX, int iY, int iZ)=0
 
virtual Cell< T, DESCRIPTOR > get (const int latticeR[])=0
 
virtual ConstCell< T, DESCRIPTOR > get (int iX, int iY, int iZ) const =0
 
virtual T & getPop (std::size_t iCell, unsigned iPop)=0
 
virtual T & getPop (int iX, int iY, int iZ, unsigned iPop)=0
 
virtual void initialize ()=0
 
virtual void defineDynamics (int iX, int iY, int iZ, Dynamics< T, DESCRIPTOR > *dynamics)=0
 Define the dynamics on a lattice site.
 
virtual void defineDynamics (int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, Dynamics< T, DESCRIPTOR > *dynamics)=0
 Define the dynamics on a 3D sub-box.
 
virtual void defineDynamics (BlockIndicatorF3D< T > &indicator, Dynamics< T, DESCRIPTOR > *dynamics)=0
 Define the dynamics on a domain described by an indicator.
 
virtual void defineDynamics (BlockGeometryStructure3D< T > &blockGeometry, int material, Dynamics< T, DESCRIPTOR > *dynamics)=0
 Define the dynamics on a domain with a particular material number.
 
virtual Dynamics< T, DESCRIPTOR > * getDynamics (int iX, int iY, int iZ)=0
 
virtual void collide (int x0_, int x1_, int y0_, int y1_, int z0_, int z1_)=0
 
virtual void collide ()=0
 
virtual void stripeOffDensityOffset (int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, T offset)=0
 
virtual void stripeOffDensityOffset (T offset)=0
 
virtual void addPostProcessor (PostProcessorGenerator3D< T, DESCRIPTOR > const &ppGen)=0
 
virtual void resetPostProcessors ()=0
 
virtual void postProcess (int x0_, int x1_, int y0_, int y1_, int z0_, int z1_)=0
 
virtual void postProcess ()=0
 
virtual void addLatticeCoupling (LatticeCouplingGenerator3D< T, DESCRIPTOR > const &lcGen, std::vector< SpatiallyExtendedObject3D * > partners)=0
 
virtual void executeCoupling (int x0_, int x1_, int y0_, int y1_, int z0_, int z1_)=0
 
virtual void executeCoupling ()=0
 
virtual LatticeStatistics< T > & getStatistics ()=0
 
virtual LatticeStatistics< T > const & getStatistics () const =0
 
virtual void freeSurfacePostProcess (size_t i, int x0_, int x1_, int y0_, int y1_, int z0_, int z1_)=0
 
virtual void freeSurfacePostProcess (size_t i)=0
 
virtual void freeSurfaceInitialize ()=0
 

Public Attributes

std::vector< Momenta< T, DESCRIPTOR > * > momentaVector
 
std::vector< Dynamics< T, DESCRIPTOR > * > dynamicsVector
 

Detailed Description

template<typename T, typename DESCRIPTOR>
class olb::BlockLatticeStructure3D< T, DESCRIPTOR >

BlockLatticeStructure3D is a interface class for defining dynamics on a BlockStructure3D.

The pure virtual methods are wrapped by generic methods.

Definition at line 55 of file blockLatticeStructure3D.h.

Constructor & Destructor Documentation

◆ BlockLatticeStructure3D()

template<typename T , typename DESCRIPTOR >
olb::BlockLatticeStructure3D< T, DESCRIPTOR >::BlockLatticeStructure3D ( int nx,
int ny,
int nz )
inline

Definition at line 57 of file blockLatticeStructure3D.h.

57: BlockStructure3D(nx,ny,nz) {};

◆ ~BlockLatticeStructure3D()

template<typename T , typename DESCRIPTOR >
olb::BlockLatticeStructure3D< T, DESCRIPTOR >::~BlockLatticeStructure3D ( )
inlineoverride

Definition at line 58 of file blockLatticeStructure3D.h.

58{ }

Member Function Documentation

◆ addLatticeCoupling()

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::addLatticeCoupling ( LatticeCouplingGenerator3D< T, DESCRIPTOR > const & lcGen,
std::vector< SpatiallyExtendedObject3D * > partners )
pure virtual

◆ addPostProcessor()

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::addPostProcessor ( PostProcessorGenerator3D< T, DESCRIPTOR > const & ppGen)
pure virtual

◆ collide() [1/2]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::collide ( )
pure virtual

◆ collide() [2/2]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::collide ( int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_ )
pure virtual

◆ defineDynamics() [1/4]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::defineDynamics ( BlockGeometryStructure3D< T > & blockGeometry,
int material,
Dynamics< T, DESCRIPTOR > * dynamics )
pure virtual

Define the dynamics on a domain with a particular material number.

◆ defineDynamics() [2/4]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::defineDynamics ( BlockIndicatorF3D< T > & indicator,
Dynamics< T, DESCRIPTOR > * dynamics )
pure virtual

Define the dynamics on a domain described by an indicator.

◆ defineDynamics() [3/4]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::defineDynamics ( int iX,
int iY,
int iZ,
Dynamics< T, DESCRIPTOR > * dynamics )
pure virtual

Define the dynamics on a lattice site.

◆ defineDynamics() [4/4]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::defineDynamics ( int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_,
Dynamics< T, DESCRIPTOR > * dynamics )
pure virtual

Define the dynamics on a 3D sub-box.

◆ defineField() [1/3]

template<typename T , typename DESCRIPTOR >
template<typename FIELD >
void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::defineField ( BlockGeometryStructure3D< T > & blockGeometry,
IndicatorF3D< T > & indicatorF,
AnalyticalF< 3, T, T > & field )

Define a field on a domain described by an analytical indicator.

Parameters
indicatorFDomain indicator to be reduced to BlockIndicatorFfromIndicatorF3D

◆ defineField() [2/3]

template<typename T , typename DESCRIPTOR >
template<typename FIELD >
void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::defineField ( BlockGeometryStructure3D< T > & blockGeometry,
int material,
AnalyticalF< 3, T, T > & field )

Define a field on a domain with a particular material number.

◆ defineField() [3/3]

template<typename T , typename DESCRIPTOR >
template<typename FIELD >
void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::defineField ( BlockIndicatorF3D< T > & indicator,
AnalyticalF< 3, T, T > & field )

Define a field on a domain described by an indicator.

Parameters
indicatorBlock indicator describing the target domain
fieldAnalytical functor (global)

◆ definePopulations() [1/4]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::definePopulations ( BlockGeometryStructure3D< T > & blockGeometry,
int material,
AnalyticalF< 3, T, T > & Pop )
virtual

Define a population on a domain with a particular material number.

◆ definePopulations() [2/4]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::definePopulations ( BlockGeometryStructure3D< T > & blockGeometry,
int material,
BlockF3D< T > & Pop )
virtual

Define a population on a domain with a particular material number.

◆ definePopulations() [3/4]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::definePopulations ( BlockIndicatorF3D< T > & indicator,
AnalyticalF< 3, T, T > & Pop )
virtual

Define a population on a domain described by an indicator.

Parameters
indicatorBlock indicator describing the target domain
PopAnalytical functor (global), target dimension DESCRIPTOR::q

◆ definePopulations() [4/4]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::definePopulations ( BlockIndicatorF3D< T > & indicator,
BlockF3D< T > & Pop )
virtual
Parameters
indicatorBlock indicator describing the target domain
PopBlock functor, target dimension DESCRIPTOR::q

◆ defineRho() [1/2]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::defineRho ( BlockGeometryStructure3D< T > & blockGeometry,
int material,
AnalyticalF< 3, T, T > & rho )
virtual

Define rho on a domain with a particular material number.

◆ defineRho() [2/2]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::defineRho ( BlockIndicatorF3D< T > & indicator,
AnalyticalF< 3, T, T > & rho )
virtual

Define rho on a domain described by an indicator.

Parameters
indicatorBlock indicator describing the target domain
rhoAnalytical functor (global)

◆ defineRhoU() [1/2]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::defineRhoU ( BlockGeometryStructure3D< T > & blockGeometry,
int material,
AnalyticalF< 3, T, T > & rho,
AnalyticalF< 3, T, T > & u )
virtual

Define rho and u on a domain with a particular material number.

◆ defineRhoU() [2/2]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::defineRhoU ( BlockIndicatorF3D< T > & indicator,
AnalyticalF< 3, T, T > & rho,
AnalyticalF< 3, T, T > & u )
virtual

Define rho and u on a domain described by an indicator.

Parameters
indicatorBlock indicator describing the target domain
rhoAnalytical functor (global)
uAnalytical functor (global)

◆ defineU() [1/2]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::defineU ( BlockGeometryStructure3D< T > & blockGeometry,
int material,
AnalyticalF< 3, T, T > & u )
virtual

Define u on a domain with a particular material number.

◆ defineU() [2/2]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::defineU ( BlockIndicatorF3D< T > & indicator,
AnalyticalF< 3, T, T > & u )
virtual

Define u on a domain described by an indicator.

Parameters
indicatorBlock indicator describing the target domain
uAnalytical functor (global)

◆ executeCoupling() [1/2]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::executeCoupling ( )
pure virtual

◆ executeCoupling() [2/2]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::executeCoupling ( int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_ )
pure virtual

◆ freeSurfaceInitialize()

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::freeSurfaceInitialize ( )
pure virtual

◆ freeSurfacePostProcess() [1/2]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::freeSurfacePostProcess ( size_t i)
pure virtual

◆ freeSurfacePostProcess() [2/2]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::freeSurfacePostProcess ( size_t i,
int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_ )
pure virtual

◆ get() [1/3]

template<typename T , typename DESCRIPTOR >
virtual Cell< T, DESCRIPTOR > olb::BlockLatticeStructure3D< T, DESCRIPTOR >::get ( const int latticeR[])
pure virtual

◆ get() [2/3]

template<typename T , typename DESCRIPTOR >
virtual ConstCell< T, DESCRIPTOR > olb::BlockLatticeStructure3D< T, DESCRIPTOR >::get ( int iX,
int iY,
int iZ ) const
pure virtual

◆ get() [3/3]

template<typename T , typename DESCRIPTOR >
virtual Cell< T, DESCRIPTOR > olb::BlockLatticeStructure3D< T, DESCRIPTOR >::get ( int iX,
int iY,
int iZ )
pure virtual

◆ getDynamics()

template<typename T , typename DESCRIPTOR >
virtual Dynamics< T, DESCRIPTOR > * olb::BlockLatticeStructure3D< T, DESCRIPTOR >::getDynamics ( int iX,
int iY,
int iZ )
pure virtual

◆ getPop() [1/2]

template<typename T , typename DESCRIPTOR >
virtual T & olb::BlockLatticeStructure3D< T, DESCRIPTOR >::getPop ( int iX,
int iY,
int iZ,
unsigned iPop )
pure virtual

◆ getPop() [2/2]

template<typename T , typename DESCRIPTOR >
virtual T & olb::BlockLatticeStructure3D< T, DESCRIPTOR >::getPop ( std::size_t iCell,
unsigned iPop )
pure virtual

◆ getStatistics() [1/2]

template<typename T , typename DESCRIPTOR >
virtual LatticeStatistics< T > const & olb::BlockLatticeStructure3D< T, DESCRIPTOR >::getStatistics ( ) const
pure virtual

◆ getStatistics() [2/2]

template<typename T , typename DESCRIPTOR >
virtual LatticeStatistics< T > & olb::BlockLatticeStructure3D< T, DESCRIPTOR >::getStatistics ( )
pure virtual

◆ iniEquilibrium() [1/2]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::iniEquilibrium ( BlockGeometryStructure3D< T > & blockGeometry,
int material,
AnalyticalF< 3, T, T > & rho,
AnalyticalF< 3, T, T > & u )
virtual

Initialize by equilibrium on a domain with a particular material number.

◆ iniEquilibrium() [2/2]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::iniEquilibrium ( BlockIndicatorF3D< T > & indicator,
AnalyticalF< 3, T, T > & rho,
AnalyticalF< 3, T, T > & u )
virtual

Initialize by equilibrium on a domain described by an indicator.

Parameters
indicatorBlock indicator describing the target domain
rhoAnalytical functor (global)
uAnalytical functor (global)

◆ iniRegularized() [1/2]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::iniRegularized ( BlockGeometryStructure3D< T > & blockGeometry,
int material,
AnalyticalF< 3, T, T > & rho,
AnalyticalF< 3, T, T > & u,
AnalyticalF< 3, T, T > & pi )
virtual

Initialize by equilibrium on a domain with a particular material number.

◆ iniRegularized() [2/2]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::iniRegularized ( BlockIndicatorF3D< T > & indicator,
AnalyticalF< 3, T, T > & rho,
AnalyticalF< 3, T, T > & u,
AnalyticalF< 3, T, T > & pi )
virtual

Initialize by non- and equilibrium on a domain described by an indicator.

Parameters
indicatorBlock indicator describing the target domain
rhoAnalytical functor (global)
uAnalytical functor (global)

◆ initialize()

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::initialize ( )
pure virtual

◆ postProcess() [1/2]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::postProcess ( )
pure virtual

◆ postProcess() [2/2]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::postProcess ( int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_ )
pure virtual

◆ resetPostProcessors()

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::resetPostProcessors ( )
pure virtual

◆ stripeOffDensityOffset() [1/2]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::stripeOffDensityOffset ( int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_,
T offset )
pure virtual

◆ stripeOffDensityOffset() [2/2]

template<typename T , typename DESCRIPTOR >
virtual void olb::BlockLatticeStructure3D< T, DESCRIPTOR >::stripeOffDensityOffset ( T offset)
pure virtual

Member Data Documentation

◆ dynamicsVector

template<typename T , typename DESCRIPTOR >
std::vector<Dynamics<T,DESCRIPTOR>*> olb::BlockLatticeStructure3D< T, DESCRIPTOR >::dynamicsVector

Definition at line 64 of file blockLatticeStructure3D.h.

◆ momentaVector

template<typename T , typename DESCRIPTOR >
std::vector<Momenta<T,DESCRIPTOR>*> olb::BlockLatticeStructure3D< T, DESCRIPTOR >::momentaVector

Definition at line 63 of file blockLatticeStructure3D.h.


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