$treeview $search $mathjax
Palabos  Version 1.1
$projectbrief
$projectbrief
$searchbox

plb::BounceBack< T, Descriptor > Class Template Reference

Implementation of "full-way bounce-back" dynamics. More...

#include <dynamics.h>

Inheritance diagram for plb::BounceBack< T, Descriptor >:
Collaboration diagram for plb::BounceBack< T, Descriptor >:

List of all members.

Public Member Functions

 BounceBack (T rho_=T())
 You may fix a fictitious density value on bounce-back nodes via the constructor.
virtual BounceBack< T,
Descriptor > * 
clone () const
 Clone the object on its dynamic type.
virtual int getId () const
 Return a unique ID for this class.
virtual void serialize (HierarchicSerializer &serializer) const
 Serialize the dynamics object.
virtual void unserialize (HierarchicUnserializer &unserializer)
 Un-Serialize the dynamics object.
virtual void collide (Cell< T, Descriptor > &cell, BlockStatistics &statistics_)
 Implementation of the collision step.
virtual T computeEquilibrium (plint iPop, T rhoBar, Array< T, Descriptor< T >::d > const &j, T jSqr, T thetaBar=T()) const
 Yields 0.
virtual void regularize (Cell< T, Descriptor > &cell, T rhoBar, Array< T, Descriptor< T >::d > const &j, T jSqr, Array< T, SymmetricTensor< T, Descriptor >::n > const &PiNeq, T thetaBar=T()) const
 Does nothing.
virtual T computeDensity (Cell< T, Descriptor > const &cell) const
 Yields fictitious density.
virtual T computePressure (Cell< T, Descriptor > const &cell) const
 Yields 0.
virtual void computeVelocity (Cell< T, Descriptor > const &cell, Array< T, Descriptor< T >::d > &u) const
 Yields 0.
virtual T computeTemperature (Cell< T, Descriptor > const &cell) const
 Yields 0.
virtual void computeDeviatoricStress (Cell< T, Descriptor > const &cell, Array< T, SymmetricTensor< T, Descriptor >::n > &PiNeq) const
 Yields 0.
virtual void computeHeatFlux (Cell< T, Descriptor > const &cell, Array< T, Descriptor< T >::d > &q) const
 Yields 0.
virtual void computeMoment (Cell< T, Descriptor > const &cell, plint momentId, T *moment) const
 Does nothing.
virtual T getOmega () const
 Yields 0.
virtual void setOmega (T omega_)
 Does nothing.
virtual plint numDecomposedVariables (plint order) const
 Yields Descriptor<T>::q + Descriptor<T>::ExternalField::numScalars.
virtual void decompose (Cell< T, Descriptor > const &cell, std::vector< T > &rawData, plint order) const
 Decomposed data is identical with original cell data.
virtual void recompose (Cell< T, Descriptor > &cell, std::vector< T > const &rawData, plint order) const
 Decomposed data is identical with original cell data.
virtual void rescale (std::vector< T > &rawData, T xDxInv, T xDt, plint order) const
 Nothing happens here.
virtual void rescale (int dxScale, int dtScale)
 Adapt internal variables to a new grid level.
virtual bool isBoundary () const
 BounceBack is a boundary.
virtual T computeRhoBar (Cell< T, Descriptor > const &cell) const
 Yields fictitious density.
virtual void computeRhoBarJ (Cell< T, Descriptor > const &cell, T &rhoBar, Array< T, Descriptor< T >::d > &j) const
 Yields fictitious density and 0.
virtual void computeRhoBarJPiNeq (Cell< T, Descriptor > const &cell, T &rhoBar, Array< T, Descriptor< T >::d > &j, Array< T, SymmetricTensor< T, Descriptor >::n > &PiNeq) const
virtual T computeEbar (Cell< T, Descriptor > const &cell) const
 Yields 0.

Detailed Description

template<typename T, template< typename U > class Descriptor>
class plb::BounceBack< T, Descriptor >

Implementation of "full-way bounce-back" dynamics.

This is a very popular way to implement no-slip boundary conditions, because the dynamics are independent of the orientation of the boundary. It is a special case, because it implements no usual LB dynamics. For that reason, it derives directly from the class Dynamics.

The code works for both 2D and 3D lattices.


Constructor & Destructor Documentation

template<typename T , template< typename U > class Descriptor>
plb::BounceBack< T, Descriptor >::BounceBack ( rho_ = T()  )  [inline]

You may fix a fictitious density value on bounce-back nodes via the constructor.


Member Function Documentation

template<typename T , template< typename U > class Descriptor>
BounceBack< T, Descriptor > * plb::BounceBack< T, Descriptor >::clone (  )  const [inline, virtual]

Clone the object on its dynamic type.

Implements plb::Dynamics< T, Descriptor >.

template<typename T , template< typename U > class Descriptor>
void plb::BounceBack< T, Descriptor >::collide ( Cell< T, Descriptor > &  cell,
BlockStatistics statistics_ 
) [inline, virtual]

Implementation of the collision step.

Implements plb::Dynamics< T, Descriptor >.

template<typename T , template< typename U > class Descriptor>
T plb::BounceBack< T, Descriptor >::computeDensity ( Cell< T, Descriptor > const &  cell  )  const [inline, virtual]

Yields fictitious density.

Implements plb::Dynamics< T, Descriptor >.

template<typename T , template< typename U > class Descriptor>
void plb::BounceBack< T, Descriptor >::computeDeviatoricStress ( Cell< T, Descriptor > const &  cell,
Array< T, SymmetricTensor< T, Descriptor >::n > &  PiNeq 
) const [inline, virtual]

Yields 0.

Implements plb::Dynamics< T, Descriptor >.

template<typename T , template< typename U > class Descriptor>
T plb::BounceBack< T, Descriptor >::computeEbar ( Cell< T, Descriptor > const &  cell  )  const [inline, virtual]

Yields 0.

Implements plb::Dynamics< T, Descriptor >.

template<typename T , template< typename U > class Descriptor>
T plb::BounceBack< T, Descriptor >::computeEquilibrium ( plint  iPop,
rhoBar,
Array< T, Descriptor< T >::d > const &  j,
jSqr,
thetaBar = T() 
) const [inline, virtual]

Yields 0.

Implements plb::Dynamics< T, Descriptor >.

template<typename T , template< typename U > class Descriptor>
void plb::BounceBack< T, Descriptor >::computeHeatFlux ( Cell< T, Descriptor > const &  cell,
Array< T, Descriptor< T >::d > &  q 
) const [inline, virtual]

Yields 0.

Implements plb::Dynamics< T, Descriptor >.

template<typename T , template< typename U > class Descriptor>
void plb::BounceBack< T, Descriptor >::computeMoment ( Cell< T, Descriptor > const &  cell,
plint  momentId,
T *  moment 
) const [inline, virtual]

Does nothing.

Implements plb::Dynamics< T, Descriptor >.

template<typename T , template< typename U > class Descriptor>
T plb::BounceBack< T, Descriptor >::computePressure ( Cell< T, Descriptor > const &  cell  )  const [inline, virtual]

Yields 0.

Implements plb::Dynamics< T, Descriptor >.

template<typename T , template< typename U > class Descriptor>
T plb::BounceBack< T, Descriptor >::computeRhoBar ( Cell< T, Descriptor > const &  cell  )  const [inline, virtual]

Yields fictitious density.

Implements plb::Dynamics< T, Descriptor >.

template<typename T , template< typename U > class Descriptor>
void plb::BounceBack< T, Descriptor >::computeRhoBarJ ( Cell< T, Descriptor > const &  cell,
T &  rhoBar,
Array< T, Descriptor< T >::d > &  j 
) const [inline, virtual]

Yields fictitious density and 0.

Implements plb::Dynamics< T, Descriptor >.

template<typename T , template< typename U > class Descriptor>
void plb::BounceBack< T, Descriptor >::computeRhoBarJPiNeq ( Cell< T, Descriptor > const &  cell,
T &  rhoBar,
Array< T, Descriptor< T >::d > &  j,
Array< T, SymmetricTensor< T, Descriptor >::n > &  PiNeq 
) const [inline, virtual]

Compute order-0 moment rho-bar, order-1 moment j, and order-2 off-equilibrium moment PiNeq.

Implements plb::Dynamics< T, Descriptor >.

template<typename T , template< typename U > class Descriptor>
T plb::BounceBack< T, Descriptor >::computeTemperature ( Cell< T, Descriptor > const &  cell  )  const [inline, virtual]

Yields 0.

Implements plb::Dynamics< T, Descriptor >.

template<typename T , template< typename U > class Descriptor>
void plb::BounceBack< T, Descriptor >::computeVelocity ( Cell< T, Descriptor > const &  cell,
Array< T, Descriptor< T >::d > &  u 
) const [inline, virtual]

Yields 0.

Implements plb::Dynamics< T, Descriptor >.

template<typename T , template< typename U > class Descriptor>
void plb::BounceBack< T, Descriptor >::decompose ( Cell< T, Descriptor > const &  cell,
std::vector< T > &  rawData,
plint  order 
) const [inline, virtual]

Decomposed data is identical with original cell data.

Implements plb::Dynamics< T, Descriptor >.

References plb::BounceBack< T, Descriptor >::numDecomposedVariables().

template<typename T , template< typename U > class Descriptor>
T plb::BounceBack< T, Descriptor >::getOmega (  )  const [inline, virtual]

Yields 0.

Implements plb::Dynamics< T, Descriptor >.

template<typename T , template< typename U > class Descriptor>
bool plb::BounceBack< T, Descriptor >::isBoundary (  )  const [inline, virtual]

BounceBack is a boundary.

Reimplemented from plb::Dynamics< T, Descriptor >.

template<typename T , template< typename U > class Descriptor>
plint plb::BounceBack< T, Descriptor >::numDecomposedVariables ( plint  order  )  const [inline, virtual]

Yields Descriptor<T>::q + Descriptor<T>::ExternalField::numScalars.

Implements plb::Dynamics< T, Descriptor >.

Referenced by plb::BounceBack< T, Descriptor >::decompose().

template<typename T , template< typename U > class Descriptor>
void plb::BounceBack< T, Descriptor >::recompose ( Cell< T, Descriptor > &  cell,
std::vector< T > const &  rawData,
plint  order 
) const [inline, virtual]

Decomposed data is identical with original cell data.

Implements plb::Dynamics< T, Descriptor >.

template<typename T , template< typename U > class Descriptor>
void plb::BounceBack< T, Descriptor >::regularize ( Cell< T, Descriptor > &  cell,
rhoBar,
Array< T, Descriptor< T >::d > const &  j,
jSqr,
Array< T, SymmetricTensor< T, Descriptor >::n > const &  PiNeq,
thetaBar = T() 
) const [inline, virtual]

Does nothing.

Implements plb::Dynamics< T, Descriptor >.

template<typename T, template< typename U > class Descriptor>
virtual void plb::BounceBack< T, Descriptor >::rescale ( int  dxScale,
int  dtScale 
) [inline, virtual]

Adapt internal variables to a new grid level.

In the default implementation, only omega is rescaled.

Reimplemented from plb::Dynamics< T, Descriptor >.

References plb::BounceBack< T, Descriptor >::rescale().

template<typename T , template< typename U > class Descriptor>
void plb::BounceBack< T, Descriptor >::rescale ( std::vector< T > &  rawData,
xDxInv,
xDt,
plint  order 
) const [inline, virtual]

Nothing happens here.

Implements plb::Dynamics< T, Descriptor >.

Referenced by plb::BounceBack< T, Descriptor >::rescale().

template<typename T , template< typename U > class Descriptor>
void plb::BounceBack< T, Descriptor >::serialize ( HierarchicSerializer serializer  )  const [inline, virtual]

Serialize the dynamics object.

Reimplemented from plb::Dynamics< T, Descriptor >.

References plb::HierarchicSerializer::addValue().

template<typename T , template< typename U > class Descriptor>
void plb::BounceBack< T, Descriptor >::setOmega ( omega_  )  [inline, virtual]

Does nothing.

Implements plb::Dynamics< T, Descriptor >.

template<typename T , template< typename U > class Descriptor>
void plb::BounceBack< T, Descriptor >::unserialize ( HierarchicUnserializer unserializer  )  [inline, virtual]

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