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

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

A LB lattice cell. More...

#include <cell.h>

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

List of all members.

Public Types

typedef ExternalFieldArray< T,
typename Descriptor< T >
::ExternalField > 
External
 Additional per-cell scalars for external fields, e.g. forces.

Public Member Functions

 Cell ()
 Default constructor.
 Cell (Dynamics< T, Descriptor > *dynamics_)
 Constructor, to be used whenever possible.
T & operator[] (plint iPop)
 Read-write access to distribution functions.
T const & operator[] (plint iPop) const
 Read-only access to distribution functions.
Array< T, Descriptor< T >
::numPop > & 
getRawPopulations ()
 Another way to get direct access to the f's, as in operator[].
Array< T, Descriptor< T >
::numPop > const & 
getRawPopulations () const
 Another way to get direct, const access to the f's, as in operator[].
Cell< T, Descriptor > & attributeF (Cell< T, Descriptor > const &rhs)
 Attribute all f-values from another cell to the present one.
Cell< T, Descriptor > & attributeValues (Cell< T, Descriptor > const &rhs)
 Attribute all f-values and external scalars from another cell to the present one.
T * getExternal (plint offset)
 Get a pointer to an external field.
T const * getExternal (plint offset) const
 Get a const pointer to an external field.
Dynamics< T, Descriptor > const & getDynamics () const
 Get a reference to non-modifiable dynamics.
Dynamics< T, Descriptor > & getDynamics ()
 Get a a reference to dynamics.
bool takesStatistics () const
 Request whether this cell does statistics measurements.
void specifyStatisticsStatus (bool status)
 Specify whether this cell does statistics measurements.
void collide (BlockStatistics &statistics)
 Apply LB collision to the cell according to local dynamics.
computeEquilibrium (plint iPop, T rhoBar, Array< T, Descriptor< T >::d > const &j, T jSqr, T thetaBar=T()) const
 Compute equilibrium distribution function.
void regularize (T rhoBar, Array< T, Descriptor< T >::d > const &j, T jSqr, Array< T, SymmetricTensor< T, Descriptor >::n > const &PiNeq, T thetaBar=T())
 Re-compute particle populations from the leading moments.
computeDensity () const
 Compute particle density on the cell.
computePressure () const
 Compute pressure on the cell.
void computeVelocity (Array< T, Descriptor< T >::d > &u) const
 Compute fluid velocity on the cell.
computeTemperature () const
 Compute Temperature on the cell.
void computeDeviatoricStress (Array< T, SymmetricTensor< T, Descriptor >::n > &PiNeq) const
 Compute the deviatoric stress tensor ("off-equilibrium part of Pi").
void computeHeatFlux (Array< T, Descriptor< T >::d > &q) const
 Compute heat flux on the cell.
void computeMoment (plint momentId, T *moment)
 Compute user-defined moment on the cell.
void getPopulations (Array< T, Descriptor< T >::numPop > &f) const
 Access particle populations through the dynamics object.
void getExternalField (plint pos, plint size, T *ext) const
 Access external fields through the dynamics object.
void defineDensity (T rho)
 Set particle density on the cell.
void defineVelocity (Array< T, Descriptor< T >::d > const &u)
 Set fluid velocity on the cell.
void defineTemperature (T temperature)
 Set temperature on the cell.
void defineHeatFlux (Array< T, Descriptor< T >::d > const &q)
 Set heat flux on the cell.
void defineDeviatoricStress (Array< T, SymmetricTensor< T, Descriptor >::n > const &PiNeq)
 Set components of the deviatoric stress tensor on the cell.
void defineMoment (plint momentId, T const *value)
 Set generic moment on the cell.
void setPopulations (Array< T, Descriptor< T >::numPop > const &f)
 Define particle populations through the dynamics object.
void setExternalField (plint pos, plint size, const T *ext)
 Define external fields through the dynamics object.
void revert ()
 Revert ("bounce-back") the distribution functions.
void serialize (char *data) const
void unSerialize (char const *data)

Friends

class BlockLattice2D
class BlockLattice3D

Detailed Description

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

A LB lattice cell.

A cell contains the q values of the distribution functions f on one lattice point, as well as a pointer to the dynamics of the cell. Thanks to this pointer, one can have a space dependend de- finition of the dynamics. This mechanism is useful e.g. for the implementation of boundary conditions, or an inhomogeneous body force.

The dynamics object is not owned by the class, it is not destructed in the Cell destructor.

This class is not intended to be derived from.


Member Typedef Documentation

template<typename T, template< typename U > class Descriptor>
typedef ExternalFieldArray<T, typename Descriptor<T>::ExternalField> plb::Cell< T, Descriptor >::External

Additional per-cell scalars for external fields, e.g. forces.


Constructor & Destructor Documentation

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

Default constructor.

The possibility to default construct Cell objects facilitates their use in various types of containers. However, they can not be used directly after construction; the method attributeDynamics() must be used first.

template<typename T, template< typename U > class Descriptor>
plb::Cell< T, Descriptor >::Cell ( Dynamics< T, Descriptor > *  dynamics_  )  [inline]

Constructor, to be used whenever possible.

This constructor initializes the dynamics, but not the values of the distribution functions. Remember that the dynamics is not owned by the Cell object, the user must ensure its proper destruction and a sufficient life time.


Member Function Documentation

template<typename T, template< typename U > class Descriptor>
Cell<T,Descriptor>& plb::Cell< T, Descriptor >::attributeF ( Cell< T, Descriptor > const &  rhs  )  [inline]

Attribute all f-values from another cell to the present one.

Returns:
a reference to *this

Referenced by plb::Cell< T, Descriptor2 >::attributeValues().

template<typename T, template< typename U > class Descriptor>
Cell<T,Descriptor>& plb::Cell< T, Descriptor >::attributeValues ( Cell< T, Descriptor > const &  rhs  )  [inline]

Attribute all f-values and external scalars from another cell to the present one.

Returns:
a reference to *this This is similar to the assignment operator operator= (which is created by default and copies all the f's, as well as the dynamics object), except that the dynamics object is not copied.

Referenced by plb::LatticeCopyAllFunctional3D< T, Descriptor >::process(), and plb::LatticeCopyAllFunctional2D< T, Descriptor >::process().

template<typename T, template< typename U > class Descriptor>
void plb::Cell< T, Descriptor >::collide ( BlockStatistics statistics  )  [inline]

Apply LB collision to the cell according to local dynamics.

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

Compute the deviatoric stress tensor ("off-equilibrium part of Pi").

Parameters:
PiNeq stress tensor

Referenced by plb::BoxStrainRateFromStressFunctional3D< T, Descriptor >::process(), and plb::BoxStrainRateFromStressFunctional2D< T, Descriptor >::process().

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

Compute heat flux on the cell.

Parameters:
q heat flux
template<typename T, template< typename U > class Descriptor>
void plb::Cell< T, Descriptor >::computeMoment ( plint  momentId,
T *  moment 
) [inline]

Compute user-defined moment on the cell.

Parameters:
momentId Identifier for the moment.
moment return value: computed moment.
template<typename T, template< typename U > class Descriptor>
T plb::Cell< T, Descriptor >::computePressure (  )  const [inline]

Compute pressure on the cell.

Returns:
pressure
template<typename T, template< typename U > class Descriptor>
T plb::Cell< T, Descriptor >::computeTemperature (  )  const [inline]

Compute Temperature on the cell.

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

Compute fluid velocity on the cell.

Parameters:
u fluid velocity

Referenced by plb::NLD_VelocityNeumannBoundaryDynamics3D< T, Descriptor >::cornerBoundaryCompletion(), plb::NLD_VelocityNeumannBoundaryDynamics3D< T, Descriptor >::edgeBoundaryCompletion(), plb::NLD_VelocityNeumannBoundaryDynamics3D< T, Descriptor >::edgeComputeMacroscopic(), plb::NLD_VelocityPlaneUtil3D< T, Descriptor >::extrapolateVelocity(), plb::BoxSumVelocityTemperatureFunctional3D< T, FluidDescriptor, TemperatureDescriptor >::process(), plb::BoxSumVelocityTemperatureFunctional2D< T, FluidDescriptor, TemperatureDescriptor >::process(), plb::LatticeInterpolateCoarseToFine3D< T, Descriptor >::process(), plb::LatticeInterpolateCoarseToFine2D< T, Descriptor >::process(), plb::VelocitySingleProbe3D< T, Descriptor >::process(), plb::LatticeToPassiveAdvDiff3D< T, FluidDescriptor, ScalarDescriptor >::process(), plb::BoussinesqThermalProcessor3D< T, FluidDescriptor, TemperatureDescriptor >::process(), plb::LatticeToPassiveAdvDiff2D< T, FluidDescriptor, ScalarDescriptor >::process(), plb::BoussinesqThermalProcessor2D< T, FluidDescriptor, TemperatureDescriptor >::process(), plb::OuterVelocityCornerFunctional3D< T, Descriptor, xNormal, yNormal, zNormal >::processCell(), plb::OuterVelocityEdgeFunctional3D< T, Descriptor, plane, normal1, normal2 >::processCell(), plb::PlaneFdBoundaryFunctional3D< T, Descriptor, direction, orientation >::processCell(), and plb::StraightFdBoundaryFunctional2D< T, Descriptor, direction, orientation >::processCell().

template<typename T, template< typename U > class Descriptor>
void plb::Cell< T, Descriptor >::defineDensity ( rho  )  [inline]
template<typename T, template< typename U > class Descriptor>
void plb::Cell< T, Descriptor >::defineDeviatoricStress ( Array< T, SymmetricTensor< T, Descriptor >::n > const &  PiNeq  )  [inline]

Set components of the deviatoric stress tensor on the cell.

Parameters:
PiNeq Deviatoric stress tensor
template<typename T, template< typename U > class Descriptor>
void plb::Cell< T, Descriptor >::defineHeatFlux ( Array< T, Descriptor< T >::d > const &  q  )  [inline]

Set heat flux on the cell.

Parameters:
q heat flux
template<typename T, template< typename U > class Descriptor>
void plb::Cell< T, Descriptor >::defineMoment ( plint  momentId,
T const *  value 
) [inline]

Set generic moment on the cell.

Parameters:
momentId Identifier of user-defined moment.
value Value of the moment.
template<typename T, template< typename U > class Descriptor>
void plb::Cell< T, Descriptor >::defineTemperature ( temperature  )  [inline]

Set temperature on the cell.

Parameters:
temperature Temperature

Referenced by plb::SetCustomBoundaryTemperatureFunctional2D< T, Descriptor, TemperatureFunction >::execute().

template<typename T, template< typename U > class Descriptor>
void plb::Cell< T, Descriptor >::defineVelocity ( Array< T, Descriptor< T >::d > const &  u  )  [inline]
template<typename T , template< typename U > class Descriptor>
Dynamics< T, Descriptor > & plb::Cell< T, Descriptor >::getDynamics (  )  [inline]

Get a a reference to dynamics.

References PLB_PRECONDITION.

template<typename T , template< typename U > class Descriptor>
Dynamics< T, Descriptor > const & plb::Cell< T, Descriptor >::getDynamics (  )  const [inline]

Get a reference to non-modifiable dynamics.

References PLB_PRECONDITION.

Referenced by plb::BlockLattice2D< T, Descriptor >::BlockLattice2D(), plb::BlockLattice3D< T, Descriptor >::BlockLattice3D(), plb::FineGridBoundaryDynamics< T, Descriptor >::completePopulations(), plb::multiPhaseHelpers2D< T, Descriptor >::computeRhoAndJ(), plb::flatWall::computeRhoBar(), plb::multiPhaseHelpers2D< T, Descriptor >::computeUstar(), plb::NLD_VelocityNeumannBoundaryDynamics3D< T, Descriptor >::cornerBoundaryCompletion(), plb::NLD_VelocityNeumannBoundaryDynamics3D< T, Descriptor >::cornerComputeMacroscopic(), plb::generalizedComprTempBoundaryTemplates< T, Descriptor >::createLinearSystem(), plb::DirichletMassConservingVelocityBoundarySolver< T, Descriptor >::createLinearSystem(), plb::generalizedComprTempBoundaryTemplates< T, Descriptor >::createLinearSystemTrLessPiNeq(), plb::NLD_VelocityNeumannBoundaryDynamics3D< T, Descriptor >::edgeBoundaryCompletion(), plb::NLD_VelocityNeumannBoundaryDynamics3D< T, Descriptor >::edgeComputeMacroscopic(), plb::NLD_VelocityPlaneUtil3D< T, Descriptor >::extrapolateVelocity(), plb::CoarseToFineConverter2D< T, Descriptor1, Descriptor2 >::fineDynamics(), plb::RhoBarJAccess< T, Descriptor, ExternalField >::getJ(), plb::OmegaFromPiDynamics< T, Descriptor >::getOmegaFromCell(), plb::RhoBarJAccess< T, Descriptor, ExternalField >::getRhoBar(), plb::RhoBarJAccess< T, Descriptor, ExternalField >::getRhoBarJ(), plb::WrappedLocalBoundaryFunctional3D< T, Descriptor >::process(), plb::WrappedLocalBoundaryFunctional2D< T, Descriptor >::process(), plb::ShanChenSingleComponentProcessor3D< T, Descriptor >::process(), plb::ShanChenMultiComponentProcessor3D< T, Descriptor >::process(), plb::ShanChenSingleComponentProcessor2D< T, Descriptor >::process(), plb::ShanChenMultiComponentProcessor2D< T, Descriptor >::process(), plb::AssignEntireCellFunctional3D< T, Descriptor >::process(), plb::AssignEntireCellFunctional2D< T, Descriptor >::process(), plb::LatticeInterpolateCoarseToFine3D< T, Descriptor >::process(), plb::LatticeCopyFineToCoarseZerothOrder3D< T, Descriptor >::process(), plb::LatticeInterpolateCoarseToFine2D< T, Descriptor >::process(), plb::LatticeCopyFineToCoarseZerothOrder2D< T, Descriptor >::process(), plb::FreeSurfaceFadingArea3D< T, Descriptor >::process(), plb::StripeOffDensityOffsetFunctional3D< T, Descriptor >::process(), plb::StripeOffDensityOffsetFunctional2D< T, Descriptor >::process(), plb::BoxOmegaFunctional3D< T, Descriptor >::process(), plb::BoxEquilibriumFunctional3D< T, Descriptor >::process(), plb::BoxStrainRateFromStressFunctional3D< T, Descriptor >::process(), plb::BoxRhoBarFunctional3D< T, Descriptor >::process(), plb::LatticeCopyAllFunctional3D< T, Descriptor >::process(), plb::BoxSumRhoBarFunctional3D< T, Descriptor >::process(), plb::BoxOmegaFunctional2D< T, Descriptor >::process(), plb::BoxEquilibriumFunctional2D< T, Descriptor >::process(), plb::BoxStrainRateFromStressFunctional2D< T, Descriptor >::process(), plb::BoxRhoBarFunctional2D< T, Descriptor >::process(), plb::LatticeCopyAllFunctional2D< T, Descriptor >::process(), plb::BoxSumRhoBarFunctional2D< T, Descriptor >::process(), plb::AsinariPostCollide2D< T, Descriptor >::process(), plb::AsinariPostCollide3D< T, Descriptor >::process(), plb::OuterVelocityCornerFunctional3D< T, Descriptor, xNormal, yNormal, zNormal >::processCell(), plb::OuterVelocityEdgeFunctional3D< T, Descriptor, plane, normal1, normal2 >::processCell(), plb::PlaneFdBoundaryFunctional3D< T, Descriptor, direction, orientation >::processCell(), plb::OuterVelocityCornerFunctional2D< T, Descriptor, xNormal, yNormal >::processCell(), plb::StraightFdBoundaryFunctional2D< T, Descriptor, direction, orientation >::processCell(), plb::RecomposeFromFlowVariablesFunctional3D< T, Descriptor >::processGenericBlocks(), plb::RecomposeFromFlowVariablesFunctional2D< T, Descriptor >::processGenericBlocks(), plb::NoScalingEngine< T, Descriptor >::recompose(), plb::ConvectiveRescaleEngine< T, Descriptor >::recompose(), plb::NoScalingEngine< T, Descriptor >::scaleCoarseFine(), plb::ConvectiveRescaleEngine< T, Descriptor >::scaleCoarseFine(), plb::NoScalingEngine< T, Descriptor >::scaleFineCoarse(), and plb::ConvectiveRescaleEngine< T, Descriptor >::scaleFineCoarse().

template<typename T, template< typename U > class Descriptor>
T const* plb::Cell< T, Descriptor >::getExternal ( plint  offset  )  const [inline]

Get a const pointer to an external field.

template<typename T, template< typename U > class Descriptor>
T* plb::Cell< T, Descriptor >::getExternal ( plint  offset  )  [inline]

Get a pointer to an external field.

Referenced by plb::externalForceTemplates< T, Descriptor >::addGuoCompressibleForce(), plb::mrtTemplates< T, Descriptor >::addGuoForce(), plb::externalForceTemplates< T, Descriptor >::addGuoForce(), plb::externalForceTemplates< T, Descriptor >::addNaiveForce(), plb::IncGuoExternalForceSmagorinskyBGKdynamics< T, Descriptor >::collide(), plb::GuoExternalForceSmagorinskyBGKdynamics< T, Descriptor >::collide(), plb::ExternalVelocityIncMRTdynamics< T, Descriptor >::collide(), plb::ExternalVelocityMRTdynamics< T, Descriptor >::collide(), plb::ExternalMomentRegularizedBGKdynamics< T, Descriptor >::collide(), plb::ExternalVelocityBGKdynamics< T, Descriptor >::collide(), plb::ExternalMomentBGKdynamics< T, Descriptor >::collide(), plb::StoreRhoBarJBGKdynamics< T, Descriptor >::collide(), plb::ShanChenExternalForceBGKdynamics< T, Descriptor >::collide(), plb::ForcedEntropicDynamics< T, Descriptor >::collide(), plb::IncAsinariDynamics< T, Descriptor >::collide(), plb::AsinariDynamics< T, Descriptor >::collide(), plb::AdvectionDiffusionWithSourceRLBdynamics< T, Descriptor >::collide(), plb::AdvectionDiffusionEdgeDynamics3D< T, Descriptor, plane, normal1, normal2 >::completePopulations(), plb::AdvectionDiffusionCornerDynamics3D< T, Descriptor, xNormal, yNormal, zNormal >::completePopulations(), plb::AdvectionDiffusionCornerDynamics2D< T, Descriptor, xNormal, yNormal >::completePopulations(), plb::multiPhaseHelpers2D< T, Descriptor >::computeRhoAndJ(), plb::ExternalVelocityIncMRTdynamics< T, Descriptor >::computeRhoBarJ(), plb::ExternalVelocityMRTdynamics< T, Descriptor >::computeRhoBarJ(), plb::ExternalVelocityBGKdynamics< T, Descriptor >::computeRhoBarJ(), plb::multiPhaseHelpers2D< T, Descriptor >::computeUphys(), plb::multiPhaseHelpers2D< T, Descriptor >::computeUstar(), plb::IncGuoExternalForceSmagorinskyBGKdynamics< T, Descriptor >::computeVelocity(), plb::GuoExternalForceSmagorinskyBGKdynamics< T, Descriptor >::computeVelocity(), plb::ExternalVelocityMRTdynamics< T, Descriptor >::computeVelocity(), plb::ExternalMomentRegularizedBGKdynamics< T, Descriptor >::computeVelocity(), plb::ExternalVelocityBGKdynamics< T, Descriptor >::computeVelocity(), plb::ExternalMomentBGKdynamics< T, Descriptor >::computeVelocity(), plb::ExternalForceDynamics< T, Descriptor >::computeVelocity(), plb::advectionDiffusionMomentTemplates< T, Descriptor >::get_jEq(), plb::advectionDiffusionMomentTemplates< T, Descriptor >::get_rhoBar_jEq(), plb::advectionDiffusionMomentTemplates< T, Descriptor >::get_rhoBar_jEq_jNeq(), plb::ExternalForceAccess< T, Descriptor, numForceComponents >::getComponent(), plb::Dynamics< T, Descriptor >::getExternalField(), plb::RhoBarJAccess< T, Descriptor, descriptors::RhoBarJdescriptor2D >::getJ(), plb::RhoBarJAccess< T, Descriptor, descriptors::RhoBarJdescriptor3D >::getJ(), plb::RhoBarJAccess< T, Descriptor, descriptors::RhoBarJdescriptor2D >::getRhoBar(), plb::RhoBarJAccess< T, Descriptor, descriptors::RhoBarJdescriptor3D >::getRhoBar(), plb::RhoBarJAccess< T, Descriptor, descriptors::RhoBarJdescriptor2D >::getRhoBarJ(), plb::RhoBarJAccess< T, Descriptor, descriptors::RhoBarJdescriptor3D >::getRhoBarJ(), plb::externalForceTemplates< T, Descriptor >::heForcedBGKCollision(), plb::mrtTemplates< T, Descriptor >::mrtCollisionWithForce(), plb::ExternalOmegaDynamics< T, Descriptor >::prepareCollision(), plb::ShanChenSingleComponentProcessor3D< T, Descriptor >::process(), plb::ShanChenMultiComponentProcessor3D< T, Descriptor >::process(), plb::ShanChenSingleComponentProcessor2D< T, Descriptor >::process(), plb::ShanChenMultiComponentProcessor2D< T, Descriptor >::process(), plb::FreeSurfaceFadingArea3D< T, Descriptor >::process(), plb::ComputeSmagoViscosityFunctional3D< T, Descriptor >::process(), plb::SetExternalVectorFromTensorFieldFunctional3D< T, Descriptor, nDim >::process(), plb::SetExternalVectorFunctional3D< T, Descriptor >::process(), plb::SetExternalVectorFromTensorFieldFunctional2D< T, Descriptor, nDim >::process(), plb::SetExternalVectorFunctional2D< T, Descriptor >::process(), plb::BoussinesqThermalProcessor3D< T, FluidDescriptor, TemperatureDescriptor >::process(), plb::BoussinesqThermalProcessor2D< T, FluidDescriptor, TemperatureDescriptor >::process(), plb::AsinariPostCollide2D< T, Descriptor >::process(), plb::AsinariPostCollide3D< T, Descriptor >::process(), plb::RegularizedClosure(), plb::Dynamics< T, Descriptor >::setExternalField(), plb::externalForceTemplates< T, Descriptor >::shanChenForcedBGKCollision(), plb::multiPhaseTemplates3D< T, Descriptor >::shanChenInteraction(), and plb::multiPhaseTemplates2D< T, Descriptor >::shanChenInteraction().

template<typename T, template< typename U > class Descriptor>
void plb::Cell< T, Descriptor >::getExternalField ( plint  pos,
plint  size,
T *  ext 
) const [inline]

Access external fields through the dynamics object.

This method is similar to getExternal(): it delivers the value of the external fields. This time, those values are however computed through a virtual call to the dynamics object.

template<typename T, template< typename U > class Descriptor>
void plb::Cell< T, Descriptor >::getPopulations ( Array< T, Descriptor< T >::numPop > &  f  )  const [inline]

Access particle populations through the dynamics object.

This method is similar to operator[]: it delivers the value of the particle populations. This time, those values are however computed through a virtual call to the dynamics object.

template<typename T, template< typename U > class Descriptor>
Array<T,Descriptor<T>::numPop> const& plb::Cell< T, Descriptor >::getRawPopulations (  )  const [inline]

Another way to get direct, const access to the f's, as in operator[].

template<typename T, template< typename U > class Descriptor>
Array<T,Descriptor<T>::numPop>& plb::Cell< T, Descriptor >::getRawPopulations (  )  [inline]

Another way to get direct access to the f's, as in operator[].

Referenced by plb::externalForceTemplates< T, Descriptor >::addGuoCompressibleForce(), plb::mrtTemplates< T, Descriptor >::addGuoForce(), plb::externalForceTemplates< T, Descriptor >::addGuoForce(), plb::externalForceTemplates< T, Descriptor >::addNaiveForce(), plb::Cell< T, Descriptor2 >::attributeF(), plb::asinariTemplates< T, Descriptor >::bgk_collision_stage1(), plb::asinariTemplates< T, Descriptor >::bgk_collision_stage3(), plb::dynamicsTemplates< T, Descriptor >::bgk_inc_collision(), plb::dynamicsTemplates< T, Descriptor >::bgk_ma2_collision(), plb::dynamicsTemplates< T, Descriptor >::bgk_ma2_constRho_collision(), plb::dynamicsTemplates< T, Descriptor >::bgk_ma4_collision(), plb::momentTemplates< T, Descriptor >::compute_e(), plb::momentTemplates< T, Descriptor >::compute_heat_flux(), plb::momentTemplates< T, Descriptor >::compute_P(), plb::momentTemplates< T, Descriptor >::compute_PiNeq(), plb::momentTemplates< T, Descriptor >::compute_Qneq(), plb::momentTemplates< T, Descriptor >::compute_rho(), plb::momentTemplates< T, Descriptor >::compute_rho_rhoThetaBar(), plb::momentTemplates< T, Descriptor >::compute_rho_uLb(), plb::momentTemplates< T, Descriptor >::compute_rhoBar_j_PiNeq(), plb::momentTemplates< T, Descriptor >::compute_rhoBar_thetaBar_j_PiNeq(), plb::momentTemplates< T, Descriptor >::compute_rhoBar_thetaBar_j_PiNeq_qNeq(), plb::momentTemplates< T, Descriptor >::compute_rhoEpsilon(), plb::momentTemplates< T, Descriptor >::compute_rhoThetaBar(), plb::momentTemplates< T, Descriptor >::compute_thermal_PiNeq(), plb::momentTemplates< T, Descriptor >::compute_theta(), plb::momentTemplates< T, Descriptor >::compute_uLb(), plb::mrtTemplates< T, Descriptor >::computeMoments(), plb::momentTemplates< T, Descriptor >::get_eBar(), plb::momentTemplates< T, Descriptor >::get_j(), plb::momentTemplates< T, Descriptor >::get_rhoBar(), plb::momentTemplates< T, Descriptor >::get_rhoBar_j(), plb::momentTemplates< T, Descriptor >::get_rhoBar_j_thetaBar(), plb::advectionDiffusionMomentTemplates< T, Descriptor >::get_rhoBar_jEq(), plb::advectionDiffusionMomentTemplates< T, Descriptor >::get_rhoBar_jEq_jNeq(), plb::Dynamics< T, Descriptor >::getPopulations(), plb::externalForceTemplates< T, Descriptor >::heForcedBGKCollision(), plb::mrtTemplates< T, Descriptor >::mrtCollision(), plb::mrtTemplates< T, Descriptor >::mrtCollisionWithForce(), plb::advectionDiffusionDynamicsTemplates< T, Descriptor >::no_corr_bgk_collision(), plb::advectionDiffusionDynamicsTemplates< T, Descriptor >::no_corr_rlb_collision(), plb::dynamicsTemplates< T, Descriptor >::precond_bgk_ma2_collision(), plb::mrtTemplates< T, Descriptor >::quasiIncMrtCollision(), plb::advectionDiffusionDynamicsTemplates< T, Descriptor >::regularize(), plb::dynamicsTemplates< T, Descriptor >::rlb_collision(), plb::Dynamics< T, Descriptor >::setPopulations(), and plb::externalForceTemplates< T, Descriptor >::shanChenForcedBGKCollision().

template<typename T, template< typename U > class Descriptor>
T const& plb::Cell< T, Descriptor >::operator[] ( plint  iPop  )  const [inline]

Read-only access to distribution functions.

Parameters:
iPop index of the accessed distribution function
template<typename T, template< typename U > class Descriptor>
T& plb::Cell< T, Descriptor >::operator[] ( plint  iPop  )  [inline]

Read-write access to distribution functions.

Parameters:
iPop index of the accessed distribution function
template<typename T, template< typename U > class Descriptor>
void plb::Cell< T, Descriptor >::regularize ( rhoBar,
Array< T, Descriptor< T >::d > const &  j,
jSqr,
Array< T, SymmetricTensor< T, Descriptor >::n > const &  PiNeq,
thetaBar = T() 
) [inline]

Re-compute particle populations from the leading moments.

template<typename T , template< typename U > class Descriptor>
void plb::Cell< T, Descriptor >::revert (  )  [inline]

Revert ("bounce-back") the distribution functions.

template<typename T , template< typename U > class Descriptor>
void plb::Cell< T, Descriptor >::serialize ( char *  data  )  const [inline]
template<typename T, template< typename U > class Descriptor>
void plb::Cell< T, Descriptor >::setExternalField ( plint  pos,
plint  size,
const T *  ext 
) [inline]

Define external fields through the dynamics object.

This method is similar to getExternal(): it accesses the value of the external fields. This time, those values are however accessed through a virtual call to the dynamics object.

template<typename T, template< typename U > class Descriptor>
void plb::Cell< T, Descriptor >::setPopulations ( Array< T, Descriptor< T >::numPop > const &  f  )  [inline]

Define particle populations through the dynamics object.

This method is similar to operator[]: it modifies the value of the particle populations. This time, those values are however accessed through a virtual call to the dynamics object.

template<typename T, template< typename U > class Descriptor>
void plb::Cell< T, Descriptor >::specifyStatisticsStatus ( bool  status  )  [inline]

Specify whether this cell does statistics measurements.

template<typename T, template< typename U > class Descriptor>
bool plb::Cell< T, Descriptor >::takesStatistics (  )  const [inline]

Request whether this cell does statistics measurements.

Referenced by plb::ThermalBGKdynamics< T, Descriptor >::collide(), plb::SmagorinskyRegularizedDynamics< T, Descriptor >::collide(), plb::IncGuoExternalForceSmagorinskyBGKdynamics< T, Descriptor >::collide(), plb::GuoExternalForceSmagorinskyBGKdynamics< T, Descriptor >::collide(), plb::SmagorinskyBGKdynamics< T, Descriptor >::collide(), plb::ExternalVelocityIncMRTdynamics< T, Descriptor >::collide(), plb::IncMRTdynamics< T, Descriptor >::collide(), plb::ExternalVelocityMRTdynamics< T, Descriptor >::collide(), plb::MRTdynamics< T, Descriptor >::collide(), plb::PrecondBGKdynamics< T, Descriptor >::collide(), plb::ChopardDynamics< T, Descriptor >::collide(), plb::ExternalMomentRegularizedBGKdynamics< T, Descriptor >::collide(), plb::IncRegularizedBGKdynamics< T, Descriptor >::collide(), plb::RegularizedBGKdynamics< T, Descriptor >::collide(), plb::ConstRhoBGKdynamics< T, Descriptor >::collide(), plb::IncBGKdynamics< T, Descriptor >::collide(), plb::ExternalVelocityBGKdynamics< T, Descriptor >::collide(), plb::ExternalMomentBGKdynamics< T, Descriptor >::collide(), plb::StoreRhoBarJBGKdynamics< T, Descriptor >::collide(), plb::BGKdynamics< T, Descriptor >::collide(), plb::IncGuoExternalForceBGKdynamics< T, Descriptor >::collide(), plb::HeExternalForceBGKdynamics< T, Descriptor >::collide(), plb::ShanChenExternalForceBGKdynamics< T, Descriptor >::collide(), plb::GuoExternalForceBGKdynamics< T, Descriptor >::collide(), plb::NaiveExternalForceBGKdynamics< T, Descriptor >::collide(), plb::ForcedEntropicDynamics< T, Descriptor >::collide(), plb::EntropicDynamics< T, Descriptor >::collide(), plb::RegularizedBGKCarreauDynamics< T, Descriptor, N >::collide(), plb::BGKCarreauDynamics< T, Descriptor, N >::collide(), plb::MomentumExchangeBounceBack< T, Descriptor >::collide(), plb::IncAsinariDynamics< T, Descriptor >::collide(), plb::AsinariDynamics< T, Descriptor >::collide(), plb::AdvectionDiffusionBGKdynamics< T, Descriptor >::collide(), plb::AdvectionDiffusionWithSourceRLBdynamics< T, Descriptor >::collide(), plb::AdvectionDiffusionRLBdynamics< T, Descriptor >::collide(), and plb::SmagorinskyAdvectionDiffusionRLBdynamics< T, Descriptor >::collide().

template<typename T , template< typename U > class Descriptor>
void plb::Cell< T, Descriptor >::unSerialize ( char const *  data  )  [inline]

Friends And Related Function Documentation

template<typename T, template< typename U > class Descriptor>
friend class BlockLattice2D [friend]
template<typename T, template< typename U > class Descriptor>
friend class BlockLattice3D [friend]

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